15,980
社区成员
发帖
与我相关
我的任务
分享
void CDebugToolDlg::RecvThreadLoop()
{
BYTE *rxbuf = new BYTE[1024];
tCOMMAND *pRxCommand = (ptCOMMAND)rxbuf;
CString str;
int ChartNum = 0;
while (1)
{
if (m_RecvThreadStopFlag)
{
delete[]rxbuf;
return;
}
if (m_pComInterface->IsOpened())
{
float fValue;
fValue = rand();
(m_pSeries)->AddPoint(m_pSeries->GetPointsCount(), fValue);
Sleep(10);
}
}
}
void CDebugToolDlg::EnableRxThread(BOOL status)
{
if (status)
{
if (m_rxThread != INVALID_HANDLE_VALUE)
EnableRxThread(FALSE);
m_RecvThreadStopFlag = FALSE;
m_rxThread = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)RecvThread, this, NULL, NULL);
}
else
{
if (m_rxThread != INVALID_HANDLE_VALUE)
{
m_RecvThreadStopFlag = TRUE;
WaitForSingleObject(m_rxThread, INFINITE);
CloseHandle(m_rxThread);
m_rxThread = INVALID_HANDLE_VALUE;
}
}
}