如果线程句柄已经正常关闭,但是由于疏忽没有将句柄m_hSendOneKey置为 NULL,从而导致 if(m_hSendOneKey != NULL)
{
TerminateThread(m_hSendOneKey,0);
CloseHandle(m_hSendOneKey);
m_hSendOneKey = NULL;
}这段程序运行。那么会引起什么错误呢?由于在测试时程序不是每次都会出现错误,只是偶尔出现死掉的情况。经检测上面的情况最值得怀疑,但是无法确定,想让高手分析分析,以便把这个问题彻底解决掉。
{
TerminateThread(m_hSendOneKey,0);
CloseHandle(m_hSendOneKey);
m_hSendOneKey = NULL;
}这段程序运行。那么会引起什么错误呢?由于在测试时程序不是每次都会出现错误,只是偶尔出现死掉的情况。经检测上面的情况最值得怀疑,但是无法确定,想让高手分析分析,以便把这个问题彻底解决掉。
如果线程m_hSendOneKey正在运行返回STILL_ACTIVE,否则返回0
如果返回0,使用GetLastError检测一下错误类型,是否为无效句柄
不设置为NULL,执行可能崩溃