当前位置:首页 > 编程开发

win32 api Event

webgou16年前 (2011-03-08)编程开发246
[CODE_LITE] include "stdafx.h" include "MyEvent.h" ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__; endif ///////////////////////////////////////////////////////////////////////////// // The one and only application object CWinApp theApp; using namespace std; DWORD threadA(void* pD) { int iID=(int)pD; //ÔÚÄÚ²¿ÖØÐ´ò¿ª HANDLE hCounterIn=OpenEvent(EVENT_ALL_ACCESS,FALSE,"My Try"); printf("\tthread %d begin\n",iID); //ÉèÖóÉΪÓÐÐźÅ״̬ Sleep(1000); SetEvent(hCounterIn); Sleep(1000); printf("\tthread %d end\n",iID); CloseHandle(hCounterIn); return 0; } DWORD threadB(void* pD) { //µÈ´ýthreadA½áÊøºóÔÙ¼ÌÐøÖ´ÐÐ int iID=(int)pD; //ÔÚÄÚ²¿ÖØÐ´ò¿ª HANDLE hCounterIn=OpenEvent(EVENT_ALL_ACCESS,FALSE,"My Try"); if(WAIT_TIMEOUT == WaitForSingleObject(hCounterIn,10*1000)) { printf("\t\tthread %d wait time out\n",iID); } else { printf("\t\tthread %d wait ok\n",iID); } CloseHandle(hCounterIn); return 0; } void main() { HANDLE hCounter=NULL; if( (hCounter=OpenEvent(EVENT_ALL_ACCESS,FALSE,"My Try"))==NULL) { //Èç¹ûûÓÐÆäËû½ø³Ì´´½¨Õâ¸öʼþ£¬ÔòÖØÐ´´½¨£¬¸ÃʼþΪÈ˹¤ÖØÖÃʼþ hCounter = CreateEvent(NULL,TRUE,FALSE,"My Try"); } //´´½¨Ïß³Ì HANDLE hThread[3]; printf("test of manual rest event\n"); CWinThread* pT1=AfxBeginThread((AFX_THREADPROC)threadA,(void*)1); CWinThread* pT2=AfxBeginThread((AFX_THREADPROC)threadB,(void*)2); CWinThread* pT3=AfxBeginThread((AFX_THREADPROC)threadB,(void*)3); hThread[0]=pT1->m_hThread; hThread[1]=pT2->m_hThread; hThread[2]=pT3->m_hThread; //µÈ´ýÏ߳̽áÊø WaitForMultipleObjects(3,hThread,TRUE,INFINITE); //¹Ø±Õ¾ä±ú CloseHandle(hCounter); if( (hCounter=OpenEvent(EVENT_ALL_ACCESS,FALSE,"My Try"))==NULL) { //Èç¹ûûÓÐÆäËû½ø³Ì´´½¨Õâ¸öʼþ£¬ÔòÖØÐ´´½¨£¬¸ÃʼþΪ×Ô¶¯ÖØÖÃʼþ hCounter = CreateEvent(NULL,FALSE,FALSE,"My Try"); } //´´½¨Ïß³Ì printf("test of auto rest event\n"); pT1=AfxBeginThread((AFX_THREADPROC)threadA,(void*)1); pT2=AfxBeginThread((AFX_THREADPROC)threadB,(void*)2); pT3=AfxBeginThread((AFX_THREADPROC)threadB,(void*)3); hThread[0]=pT1->m_hThread; hThread[1]=pT2->m_hThread; hThread[2]=pT3->m_hThread; //µÈ´ýÏ߳̽áÊø WaitForMultipleObjects(3,hThread,TRUE,INFINITE); //¹Ø±Õ¾ä±ú CloseHandle(hCounter); } [/CODE_LITE] 来源:PUDN

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=437

分享给朋友:

“win32 api Event” 的相关文章

实例详解WinCE中Display驱动开发

    在WinCE中,Display驱动由GWES模块来管理。WinCE提供了两种架构的Display驱动模型,可以满足不同的硬件需求。一种是基于WinCE DDI的Display驱动模型,另一种是基于DirectDraw的Display驱动模型。…

主流 AI 代码助手功能分析(2026年3月)

 一、市场概览AI 代码助手已从"补全工具"进化为"编程代理",核心趋势:从补全到 Agent:能自主完成完整功能、跑测试、提交 PRIDE 深度整合:Cursor、Windsurf 直接 fork VSCode多模型路由:GPT-4o、Claude…

80年后可以分为八大派,你属于哪一派呢?

看到下面对80后的分派,还是很有道理的. ...…

线程

线程是由两个部分组成的: * 一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放 线程统计信息的地方。 * 另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量 进程是不活泼的。进程从来不执行任何东西,它只是线程的…

ATL处理函数跳转的思考

今天,分析MFC与WTL的消息映射,比较难理解的有下面两点: 1.MFC,AfxCbtFilterHook转到AfxWndProc, 2.WTL(ATL),CWndProcThunk把窗口指针跳转到WindowProc,并把hWnd改成窗口指针.…

线程同步

效率      you should try to use nonshared data first and then use volatile reads, volatile writes, interlocked APIs, SRWL…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。