CSerialPort串口类,析构函数中退出串口线程有关问题
CSerialPort串口类,析构函数中退出串口线程问题
本人一个MFC单文档程序,在视类中添加了一个串口类对象,实现串口通信。但是发现当关闭该MFC程序时,进程仍然在任务管理器里存在,而且占用50%CPU。经调试发现,在SErialPort串口类的析构函数中的
do
{
SetEvent(m_hShutdownEvent);
} while (m_bThreadAlive);
循环中卡死。请问,为什么串口线程关不上?!
CSerialPort串口类为网上的串口类。
------解决方案--------------------
CSerialPort::~CSerialPort()
{
do
{
SetEvent(m_hShutdownEvent);
} while (m_bThreadAlive);
TRACE("Thread ended\n");
delete [] m_szWriteBuffer;
}
//先关闭串口, 再关主程序.
本人一个MFC单文档程序,在视类中添加了一个串口类对象,实现串口通信。但是发现当关闭该MFC程序时,进程仍然在任务管理器里存在,而且占用50%CPU。经调试发现,在SErialPort串口类的析构函数中的
do
{
SetEvent(m_hShutdownEvent);
} while (m_bThreadAlive);
循环中卡死。请问,为什么串口线程关不上?!
CSerialPort串口类为网上的串口类。
------解决方案--------------------
CSerialPort::~CSerialPort()
{
do
{
SetEvent(m_hShutdownEvent);
} while (m_bThreadAlive);
TRACE("Thread ended\n");
delete [] m_szWriteBuffer;
}
//先关闭串口, 再关主程序.