int CSerialPort::UninitPort()
{
m_bExitThread = TRUE;
if (m_hSendDataThread)
{
SetEvent(m_hSendDataEvent);
WaitForSingleObject(m_hSendDataThread, INFINITE);
SAFE_DELETE_HANDLE(m_hSendDataEvent);
SAFE_DELETE_HANDLE(m_hSendDataThread);
}
if (m_hReceiveDataThread)
{
SetCommMask(m_hSerialPort, 0);
if (WaitForSingleObject(m_hReceiveDataThread, 500) == WAIT_TIMEOUT)
TerminateThread(m_hReceiveDataThread, 10);
SAFE_DELETE_HANDLE(m_hSendDataThread);
}
if (m_hSerialPort != INVALID_HANDLE_VALUE)
{
CloseHandle(m_hSerialPort);
m_hSerialPort = INVALID_HANDLE_VALUE;
}
m_bExitThread = FALSE;
return 0;
}
关注这个问题