
HANDLE hThreadEvent;
int WorkThread(LPVOID lpParam)
...{
ResetEvent(hThreadEvent); //告诉主线程,Y等我干完了再继续运行
//do something
SetEvent(hThreadEvent); //告诉主线程,本线程好了,你Y继续吧
}
int main(int argc, char* argv[])
...{
hThreadEvent = CreateEvent(
NULL, // default security attributes
TRUE, // manual-reset event
TRUE, // initial state is signaled
NULL // object name
);
while(true)
...{
WaitForSingleObject(hThreadEvent,INFINITE); //询问线程,我需要等你不?
//
//do something
printf("线程没有事件发送过来,恩,我继续走下去");
//
}
return 0;
}
本文通过一个具体的示例代码展示了Windows环境下线程间如何使用事件(Event)进行同步。介绍了如何创建事件对象、如何在线程间利用ResetEvent与SetEvent函数来实现线程的等待与唤醒,以及主线程如何通过WaitForSingleObject函数来等待子线程完成任务。
630

被折叠的 条评论
为什么被折叠?



