事件
简单使用
#include <Windows.h>
#include <process.h>
#include <stdio.h>
#include <stdlib.h>
//用事件进行线程的通信
HANDLE event[1] = { 0 }; //声明句柄集合,存放事件
HANDLE THEADCOUNT[2] = { 0 }; //声明句柄集合,存放线程
DWORD WINAPI func1(PVOID *p)
{
printf("func1\n");
MessageBoxA(0, "hello", "hello", 0);
SetEvent(event[0]); //设置事件处于有信号的(相当于发出通知)
return 0;
}
DWORD WINAPI func2(PVOID *p)
{
printf("func2\n");
WaitForSingleObject(event[0], INFINITE); //等待事件信号(相当于收到通知)
MessageBoxA(0, "word", "word", 0);
return 0;
}
int main(int argc, char *agv[])
{
event[0] = CreateEvent(NULL, TRUE, FALSE, NULL); //参数2代表是否复位 TURE手动 FALSE自动
THEADCOUNT[0] = CreateThread(NULL, 0, func1, NULL, 0, NULL);
THEADCOUNT[1] = CreateThread(NULL, 0, func2, NULL, 0, NULL);
WaitForMultipleObjects(2, THEADCOUNT, TRUE, INFINITE); //等待所有子线程执行完毕
getchar();
return 0;
}
看图说话

秋风
2016-07-02