windows核心编程之内核对象同步(3)
2017-09-29 15:16
260 查看
常规的等待内核对象的函数已经不用我说明了
我们来将内核对象做个纵向对比
![](https://img-blog.csdn.net/20170929151717535?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpZHVfMjU1Mzk0MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170929151729570?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpZHVfMjU1Mzk0MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
现在我们要介绍一个用于等待子进程初始化的函数
DWORD WaitForInputIdle(
HANDLE hProcess, //子进程句柄
DWORD dwMilliseconds // 超时时间
);
该函数一直处于等待状态,直到子进程不再处理任何输入为止
MsgWaitForMultipleObjects
DWORD nCount, // number of handles in array
CONST HANDLE pHandles, // object-handle array
DWORD dwMilliseconds, // time-out interval
DWORD dwWakeMask, // input-event type
多于的我就不说了,这个函数和不带Msg的主要差别是,这个函数可以等待窗口消息(所以主要用在带界面的程序里)
我们主要讲下dwWakeMask
![](https://img-blog.csdn.net/20170929155413866?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpZHVfMjU1Mzk0MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
带ex的版本
dwFlags
![](https://img-blog.csdn.net/20170929160222524?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpZHVfMjU1Mzk0MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
返回值的说明以后补上
DWORD SignalObjectAndWait(
HANDLE hObjectToSignal, // handle to object to signal
HANDLE hObjectToWaitOn, // handle to object to watch
DWORD dwMilliseconds, // time-out interval
BOOL bAlertable // alertable option
);
将第一个内核对象变为有信号状态,等待第二个内核对象
第四个参数参考ReadFileEx,我有做过说明
我们来将内核对象做个纵向对比
现在我们要介绍一个用于等待子进程初始化的函数
DWORD WaitForInputIdle(
HANDLE hProcess, //子进程句柄
DWORD dwMilliseconds // 超时时间
);
该函数一直处于等待状态,直到子进程不再处理任何输入为止
MsgWaitForMultipleObjects
DWORD nCount, // number of handles in array
CONST HANDLE pHandles, // object-handle array
DWORD dwMilliseconds, // time-out interval
DWORD dwWakeMask, // input-event type
多于的我就不说了,这个函数和不带Msg的主要差别是,这个函数可以等待窗口消息(所以主要用在带界面的程序里)
我们主要讲下dwWakeMask
带ex的版本
dwFlags
返回值的说明以后补上
DWORD SignalObjectAndWait(
HANDLE hObjectToSignal, // handle to object to signal
HANDLE hObjectToWaitOn, // handle to object to watch
DWORD dwMilliseconds, // time-out interval
BOOL bAlertable // alertable option
);
将第一个内核对象变为有信号状态,等待第二个内核对象
第四个参数参考ReadFileEx,我有做过说明
相关文章推荐
- 线程与内核对象的同步——Windows核心编程学习手札之九
- Windows核心编程 第九章 线程与内核对象的同步(下)
- 《Windows核心编程》之“内核对象同步”
- windows核心编程之线程内核对象同步(1)
- windows核心编程之线程内核对象同步(2)
- Windows核心编程 第九章 线程与内核对象的同步(上)
- 《Windows核心编程》读书笔记(六) 第9章 线程与内核对象的同步
- 第九章 线程与内核对象的同步(3)
- Windows编程--线程和内核对象的同步-事件内核对象
- 《Windows核心编程 5th》读书笔记----第9章 用内核对象进行线程同步
- 第9章 线程与内核对象的同步
- Windows核心编程 第三章 内核对象
- Windows核心编程(三)内核对象
- 《windows核心编程》学习笔记 内核对象
- Windows 核心编程内核对象同步之-Waitable timer
- windows核心编程--内核对象和句柄泄漏
- windows核心编程-9.用内核对象进行线程同步
- delphi 内核同步对象单元 其中包括精确的定时器
- windows程序设计 and windows核心编程(内核对象理论)
- 第九章 线程与内核对象的同步(4)