WInCE下线程的事件同步
来源:互联网 发布:网站内容管理系统cms 编辑:程序博客网 时间:2024/06/10 11:59
程序开发中,我们经常会用到多线程。而某个线程的运行可能会依赖或影响另一线程的运行。如果一个线程需要通知其他线程某个事件发生了,可使用Event同步事件。
先来看看与Event相关的函数:
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,
BOOL bManualReset,
BOOL bInitialState,
LPTSTR lpName
);
该函数创建一个同步对象。lpEventAttributes必须为NULL,bManualReset为是否需要人工重置对象状态(如果为TRUE,则WaitForSingleObject后需要调用ResetEvent,反之不需要),bInitialState是对象创建的初始状态(通知或未通知),lpName是事件的名字,可选。
BOOL SetEvent(
HANDLE hEvent
);
该函数把同步对象设置为通知状态。如果hEvent非法则返回FALSE。
BOOL ResetEvent(
HANDLE hEvent
);
该函数把同步对象设置为未通知状态。如果hEvent非法则返回FALSE。
BOOL CloseHandle(
HANDLE hObject
);
该函数关闭一个事件句柄。如果hObject非法则返回FALSE。
再来看看相关的等待函数:
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
该函数等待单个同步对象,dwMilliseconds为毫秒数。返回WAIT_OBJECT_0则表示等待成功,返回WAIT_TIMEOUT表示等待超时。当dwMilliseconds设置为INFINITE时,函数会无限期等待对象的通知。
DWORD WaitForMultipleObjects(
DWORD nCount,
CONST HANDLE* lpHandles,
BOOL fWaitAll,
DWORD dwMilliseconds
);
该函数等待多个同步对象。nCount为对象个数,lpHandles为对象句柄数组,fWaitAll为是否等待所有对象(当前必须为FALSE),dwMilliseconds为毫秒数。也就是说等待的对象中只要有一个有通知,函数立即返回。返回WAIT_TIMEOUT表示超时,如果返回WAIT_OBJECT_0到(WAIT_OBJECT_0 + nCount –1)的数,则表示对应的某个对象有通知。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pknife/archive/2008/09/25/2978043.aspx
- WInCE下线程的事件同步
- WInCE下线程的事件同步
- WinCE线程同步
- WinCE线程同步
- 线程的同步(二)---事件
- 基于事件的线程同步
- 基于事件的线程同步
- windows下线程同步方式(事件)
- window下线程同步之(Event Objects(事件)) / 事件CEvent的使用
- Linux下线程的同步
- Windows 下的线程同步
- linux下线程的同步
- linux下线程的同步
- andriod 下的线程同步
- Windows下的线程同步
- 事件Event:简单的线程同步
- 事件Event:简单的线程同步【转】
- 事件Event:简单的线程同步
- 百度规律
- VS2005编译的程序在XP系统下不能运行的解决办法
- Windows mobile下获取系统图标
- windows mobile上调用摄像头接口
- Linux液晶屏驱动开发
- WInCE下线程的事件同步
- RTSP协议分析
- WinCE下的非常用字符串操作函数
- windows mobile中求存储空间大小
- 【原创分享】一个qt4图片浏览器
- 中国优秀软件架构师感悟录
- windows mobile中开发九宫格界面的方法
- windows mobile中区分cmwap或cmnet接入点
- Java HotSpot VM 簡介