循环线程退出问题二
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);
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);
相关文章推荐
- 如何优雅的退出一直循环的python脚本及mysql binlog dump线程问题
- 关于循环线程的正常退出问题。
- 关于线程退出的问题
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
- perl last 退出循环问题
- 黑马程序员 关于c# windows窗体关闭时线程未能完全退出问题(专题一)
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
- 一个线程通信问题(sub运行10次,然后main运行100次,这样交替循环50次)
- DllMain中不当操作导致死锁问题的分析--线程退出时产生了死锁
- java用while循环设计轮询线程的性能问题
- QT中|Qt::Tool类型窗口自动退出消息循环问题解决
- 问题和解决 ROS节点的不可执行(线程退出)
- 学生循环退出问题
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
- DllMain中不当操作导致死锁问题的分析--线程退出时产生了死锁
- 线程下DataGridView循环绑定时的滚动条问题
- 控制线程(NSThread)和运行时循环(NSRunLoop)的退出
- 线程问题的核心: 怎么退出线程才是合适的----小话多线程(2)
- Java实现多线程经典问题:使用三个线程实现输出ABCABC循环