您的位置:首页 > 其它

循环线程退出问题二

2008-10-14 11:54 411 查看
你不能使用AfxBeginThread(),需要改用CreateThread()。

HANDLE m_hYourThread; // 线程句柄,声明成一个成员变量
HANDLE m_hYourEvent; // 事件句柄,用来通知线程结束

// 初始化的时候增加这两句
m_hYourThread = NULL;
m_hYOurEvent = CreateEvent(NULL,FALSE,FALSE,NULL);

// 创建的时候
DWORD dwThreadId;
m_hYourThread = CreateThread(NULL,0,YourThread,this,0,&dwThreadId);

// 线程内部
while (1) 改成: while (WAIT_TIMEOUT == WaitForSingleObject(m_hYourThred, 10000)) {
}
return 0;

// 退出的时候
SetEvent(m_hYourEvent);
if (WAIT_TIMEOUT == WaitForSingleObject(m_hYourThread,1000)
TerminateThread(m_hYourThread);
CloseHandle(m_hYourThread);
CloseHandle(m_hYourEvent);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: