找东西的游戏叫什么:请帮忙读一下这个程序,关于WaitForSingleObject的

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 11:38:21
#include<stdio.h>
#include<windows.h>
#include<process.h>

HANDLE g_hEvent;
UINT _stdcall ChildFunc(LPVOID);
int main(int argc, char* argv[])
{
HANDLE hChildThread;
UINT uId;
// 创建一个自动重置的(auto-reset events),未受信的(nonsignaled)事件内核对象
g_hEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);
hChildThread = (HANDLE)::_beginthreadex(NULL, 0, ChildFunc, NULL, 0, &uId);
// 通知子线程开始工作
printf("Please input a char to tell the Child Thread to work:\n");
getchar();
::SetEvent(g_hEvent);
// 等待子线程完成工作,释放资源
::WaitForSingleObject(hChildThread, INFINITE);
printf("All the work has been finished.\n");
::CloseHandle(hChildThread);
::CloseHandle(g_hEvent);
return 0;
}
UINT _stdcall ChildFunc(LPVOID)
{
::WaitForSingleObject(g_hEvent, INFINITE);
printf(" Child thread is working......\n");
::Sleep(5*1000);
return 0;
}

问题:程序中有两处用到了WaitForSingleObject,这个函数有什么作用?
看过书了,不过没看懂。本人不是学计算机的,刚开始学Windows编程。买了一本书,就开看了。
怎么学,大家有什么建议吗?
非常感谢!

WaitForSingleObject(),由于它作用的范围很广,对不同的对象
会有不同的含义。
线程,事件,信号等这些东西都被操作系统当成对象,叫内核对象,当内核对象被触发的话,可以被WaitForSingleObjec捕获的.到底要捕获那种对象,根据其参数也决定,具体的看msdn
WaitForSingleObject()等待.直到有信号