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

win32 api Event

webgou16年前 (2011-03-08)编程开发178
[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” 的相关文章

什么是好的API设计?

以前看别人设计api或sdk时,以为是件简单而有趣的事情,刚在csdn上看到一篇文章关于这个描述的:发表于09-05 16:33| 106次阅读| 来源richardminerich| 0 条评论| 作者Richard Minerich摘要:有人言,API设计是编程工作中最难的事情。甚至有人认为至少…

简明 Vim 练级攻略

下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。 你想以最快的速度学习人类史上最…

WinXP与WinCE串口的运行机制之比较

    WinXP与WinCE串口的运行机制之比较…

android ndk "5039: Operation timed out."解决办法

在调试C/C++代码时,需执行: 1.adb forward tcp:5039 tcp:5039 2.ndk-gdb-eclipse --force --start 参考: ndk-gdb关联eclipse设置方法 Using cgdb with ndk-debug (and cgdb tuto…

发表评论

访客

看不清,换一张

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