线程编程的一个小问题
我定义了一个用户界面线程类,想让它在未接收到消息(所谓的空闲期)时做一点事。例如检测指定端口之类的。我重载了CWinThread::OnIdle(long lcount)这个函数,结果我发现它只在线程创建时运行了一次,这是为什么?请赐教!并告诉正确的方法
问题点数:20、回复次数:5Top
1 楼xyzboat(一叶小舟)回复于 2001-02-19 09:40:00 得分 15
看一下MSDN的例子,我没有出现你说的问题呀.
注意返回值和调用基类的OnIdle();Top
2 楼directx(游又戈)回复于 2001-02-19 09:49:00 得分 5
说清楚点,线程创建时就运行,如果你不在线程中加循环,运行完线程内的代
码就结束整个线程,当然可能ReSume()次运行.Top
3 楼limilu(言明)回复于 2001-02-19 09:59:00 得分 0
XYZBOAT,拜托,能不能帮忙把这个例子代码拷上来?Top
4 楼limilu(言明)回复于 2001-02-19 10:26:00 得分 0
Dirsctx说的是工作者线程的情况,用户界面线程启动后会一直驻留直到它收到PostQuitMessage为止。Top
5 楼limilu(言明)回复于 2001-02-20 10:03:00 得分 0
问题解决:我知道了!OnIdle要返回非零时,系统才会再次分配空闲处理时间。Top




