niufen 发表于 2017-6-2 13:28:51

设置事件通知工作线程工作

主线程通过将事件状态设置为“受信”来通知工作线程工作
// eventDemo.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <Windows.h>
#include <process.h>
HANDLE g_event;

UINT __stdcall ThreadProc(LPVOID)
{
        ::WaitForSingleObject(g_event, INFINITE);
        printf("in threadProc...\n");
        return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
        HANDLE hThread;
        //初始化成不受信状态
        g_event = ::CreateEvent(NULL, FALSE, FALSE,NULL);
        hThread = (HANDLE)::_beginthreadex(NULL, 0, ThreadProc,NULL, 0, NULL);

        //控制工作线程,使工作线程开始工作
        printf("press anykey to let work thread start..");
        getchar();
        ::SetEvent(g_event); //设为受信状态,工作线程为触发

        //工作线程结束后,才会运行到这里
        ::WaitForSingleObject(hThread, INFINITE);
        printf("finished...\n");
        ::CloseHandle(hThread);
        ::CloseHandle(g_event);
        return 0;
}
页: [1]
查看完整版本: 设置事件通知工作线程工作