DWORD dwDesiredAccess, // 访问标志
BOOL bInheritHandle, // 继承标志
LPCTSTR lpName // 指向事件对象名的指针
);
测试代码
#include <stdio.h>
#include <Windows.h>
#include <Mmsystem.h>
#pragma comment(lib, "Winmm.lib")
//#include "Mutex.h"
int thread_count = 0;
/*Mutex mutex1;*/
/*CRITICAL_SECTION g_cs;*/
HANDLE hEvent;
DWORD CALLBACK thread_proc(LPVOID params)
{
int i = 0;
char c = 'A';
for(i = 0; i < 10; ++i)
{
//synchronized(mutex1)
//EnterCriticalSection(&g_cs);
WaitForSingleObject(hEvent,INFINITE);
{
for(c = 'A'; c <= 'Z'; ++c)
{
printf("%c",c);
Sleep(1);
}
printf("\n");
}
SetEvent(hEvent);
//LeaveCriticalSection(&g_cs);
}
thread_count--;
return 0;
}
int main()
{
//InitializeCriticalSection(&g_cs);
hEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
SetEvent(hEvent);
thread_count = 4;
CreateThread(0, 0, thread_proc, 0, 0, 0);
CreateThread(0, 0, thread_proc, 0, 0, 0);
CreateThread(0, 0, thread_proc, 0, 0, 0);
CreateThread(0, 0, thread_proc, 0, 0, 0);
while (thread_count)
Sleep(0);
getchar();
//DeleteCriticalSection(&g_cs);
return 0;
}