简单的多线程控制
使用的是Event方式.
#include "stdafx.h"
#include "windows.h"
//包含_beginthread的头文件,必须将运行库变更为多线程,
//否者将会出现函数未定义
#include "process.h"
//多线程函数体,比直接API的简单多了
void ThreadFunc(void * pvParam)
{
printf("Enter ThreadFunc\n");
Sleep( 2000);
HANDLE h=(HANDLE)pvParam;
printf("Exit ThreadFunc\n");
//把Event设定为触发,这样Waitforxx系列函数会继续执行
SetEvent(h);
}
int main(int argc, char* argv[])
{
//建立Evnet,其中第二个函数参数最重要
//FALSE 表示在Waitforxx系列函数后不需要手动重置为不触发.
HANDLE h= CreateEvent(0,FALSE,FALSE,0);
//开多线程
_beginthread(ThreadFunc,0,h);
//在其他线程中SetEvent调用前无限等待
WaitForSingleObject(h,-1);
//销毁
CloseHandle(h);
printf("App end\n");
return 0;
}