读书人

入门简单有关问题主要是送点分出去

发布时间: 2012-02-08 19:52:21 作者: rapoo

入门简单问题,主要是送点分出去。
WaitForSingleObject看了好几编关于这个函数的介绍,我还是不能完全弄明白这个函数到底有什么用,我知道这个函数的第一个参数是欲使其等待的线程对象的句柄,第二个参数可以设置时间, 他到底是阻塞调用的线程还是被调用的线程啊?




[解决办法]
g_CpVFThread-> ResumeThread(); //回复线程
WaitForSingleObject( g_CpVFThread-> m_hThread, INFINITE ); //等待

看一下这个 明白了吧

[解决办法]
在当前位置等待第一个参数的有效事件发生,如果等待时间超过了第二个参数设置的时间则返回超时
[解决办法]
比如WaitForSingleObject(hThread,1000);指的是当前线程会等待hThread(为被等待的线程句柄)1秒,如果1秒内hThread指向的线程执行完毕,则当前线程马上往下,若是1秒后hThread指向的线程仍没有执行完毕,当前线程也将继续往下执行,1000就是超时参数
WaitForSingleObject(hThread,INFINITE);则当前线程将一直等待hThread指向的线程执行完毕才往下执行,否则就停在WaitForSingleObject处.
[解决办法]
那个线程的的执行主体调用它,它就阻塞谁

比如 在主线程的入口main里边调用,它就会阻塞main.
在应用创建的线程入口如 my_thread_proc里边调用,它就会阻塞my_thread_proc.
在窗口的消息处理函数里边调用它,就会阻塞窗口的消息循环,导致窗口看起来像死了一样

读书人网 >VC/MFC

热点推荐