antiantantiant.blog.chinaunix.net
antiant
全部博文(32)
线程间通信(9)
进程间通信(0)
网络通信(1)
2010年(32)
大鬼不动
zzbok
36853
分类: WINDOWS
2010-06-24 20:53:44
#include "stdafx.h" #include <afxwin.h> #include <windows.h> HANDLE hEvent = NULL; char g_cArray[10]; UINT ThreadProcFirst(LPVOID pParam); UINT ThreadProcSecond(LPVOID pParam); int main(int argc, char* argv[]) { /*创建一个可以自动复位的事件内核对象*/ hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); /*置位*/ SetEvent(hEvent); AfxBeginThread(ThreadProcFirst, NULL); AfxBeginThread(ThreadProcSecond, NULL); Sleep(500); CString strResult = CString(g_cArray); AfxMessageBox(strResult); return 0; } UINT ThreadProcFirst(LPVOID pParam) { /*无限等待hEvent的复位*/ WaitForSingleObject(hEvent, INFINITE); printf("First"); for (int i = 0; i < 10; ++i) { g_cArray[i] = 'a'; Sleep(1); } SetEvent(hEvent); return 0; } UINT ThreadProcSecond(LPVOID pParam) { WaitForSingleObject(hEvent, INFINITE); printf("Second"); for (int i = 0; i < 10; ++i) { g_cArray[10-i-1] = 'b'; Sleep(1); } SetEvent(hEvent); return 0; }
上一篇:临界区优缺点
下一篇:事件内核对象示例-命名事件
登录 注册