- #include <windows.h>
- #include <stdio.h>
- #define NUMTHREADS 3
- #define BUFFER_SIZE 16
- #define FOR_TIMES 5
- HANDLE hEvent;
- BYTE lpSharedBuffer[16] = {0};
- void UseEvents(void);
- DWORD WINAPI EventFunction(LPVOID lpParam);
- int main(){
- UseEvents();
- }
- void UseEvents(void){
- HANDLE hThread;
- hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
- if(hEvent == NULL){
- printf("CreateEvent failed.(%d)\n",GetLastError());
- return;
- }
- hThread = CreateThread(NULL,0,EventFunction,NULL,0,NULL);
- if(hThread == NULL){
- printf("CreateThread failed.(%d)\n",GetLastError());
- return;
- }
- Sleep(2000);
- CopyMemory(lpSharedBuffer,"Event",strlen("Event"));
- SetEvent(hEvent);
- }
- DWORD WINAPI EventFunction(LPVOID lpParam){
- DWORD dwWaitResult;
- dwWaitResult = WaitForSingleObject(hEvent,INFINITE);
- if(dwWaitResult!=WAIT_OBJECT_0){
- printf("Wait error:%d\n",GetLastError());
- return 0;
- }
- printf("0%x",lpSharedBuffer);
- system("pause");
- if(!ResetEvent(hEvent)){
- printf("SetEvent failed(%d)\n",GetLastError());
- return 0;
- }
- return 1;
- }
转载于:https://blog.51cto.com/pnig0s1992/671313