CreateEvent的用法
来源:互联网 发布:自动采集视频网站源码 编辑:程序博客网 时间:2024/04/29 12:10
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes, // SD
BOOL bManualReset, // reset type
BOOL bInitialState, // initial state
LPCTSTR lpName // object name
);
该函数创建一个Event同步对象,并返回该对象的Handle
lpEventAttributes 一般为NULL
bManualReset 创建的Event是自动复位还是人工复位 ,如果true,人工复位,
一旦该Event被设置为有信号,则它一直会等到ResetEvent()API被调用时才会恢复
为无信号. 如果为false,Event被设置为有信号,则当有一个wait到它的Thread时,
该Event就会自动复位,变成无信号.
bInitialState 初始状态,true,有信号,false无信号
lpName Event对象名
一个Event被创建以后,可以用OpenEvent()API来获得它的Handle,用CloseHandle()
来关闭它,用SetEvent()或PulseEvent()来设置它使其有信号,用ResetEvent()
来使其无信号,用WaitForSingleObject()或WaitForMultipleObjects()来等待
其变为有信号.
PulseEvent()是一个比较有意思的使用方法,正如这个API的名字,它使一个Event
对象的状态发生一次脉冲变化,从无信号变成有信号再变成无信号,而整个操作是原子的.
对自动复位的Event对象,它仅释放第一个等到该事件的thread(如果有),而对于
人工复位的Event对象,它释放所有等待的thread.
这里有两个API函数用来修改事件对象的信号状态:SetEvent和ResetEvent。前者把事件对象设为”有信号”状态,而后者正好相反。
在事件对象生成后,必须调用WaitForSingleObject来让线程进入等待状态,该函数的语法如下:
WaitForSingleObject proto hObject:DWORD, dwTimeout:DWORD
hObject -->指向同步对象的指针。事件对象其实是同步对象的一种。
dwTimeout --> 等待同步对象变成”有信号”前等待的时间,以毫秒计。当等待的时间超过该值后无信号同步对象仍处于”无信号”状态,线程不再等待,WaitForSingleObject函数会返回。如果想要线程一直等待,请把该参数设为INFINITE(该值等于0xffffffff)。
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent,DeviceIoControl的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent()的用法
- CreateEvent的用法
- CreateEvent的用法
- CreateEvent的用法
- 在vc中使用MSXML解析xml文件
- FreeBSD 最小化安装 +diablo-jdk +Apache 与 Tomcat 整合 !
- VC_XML
- 项目干系人分析的“四步法”
- 让 VMWare Workstation 5.5.3 能够在 Ubuntu 7.04 (Feisty Fawn)中正常运行!
- CreateEvent的用法
- 将asp重写url(html)页面
- 想当然和偏执狂都要不得!握其法而又能知其度,善莫大焉!
- 对UNIX/Linux风格的顿悟!
- web.config信息及RSA加密方式
- 今天遇到 Could not determine type for: java.util.List
- 用Linux搞定了Windows中无法使用也无法修复的MP3!
- Expression Web 中文版
- Swiftfox:“告诉我你的CPU类型,我给你最优化的Firefox!”