1. 首页 > 科技资讯

msgwaitformultipleobjects 用法,msg waitall

你是不是希望能有一个 WaitMessageTimeout 函数能帮助你干一些特殊的活?抱歉,并没有这个东西。

可是,你可以利用另外一个函数 MsgWaitForMultipleObjects 来间接地完成它。怎样做?请看下文。

要实现等待一个消息还带有请求超时体制,我们应该以一种特殊的方法来启用 MsgWaitForMultipleObjects。从总体上,在我们传送一个期待监视的对象列表,和一个超时时间及其序列情况集合时,MsgWaitForMultipleObjects 会到对象列表里的任意一个对象激起时,或是当一个消息可以用时回到。

假如我们不传送一切对象,则唯一接下来就是等待一个指定消息了。

此外,大家也可以使用 MsgWaitForMultipleObjects 或是它超集MsgWaitForMultipleObjectsEx 来达到一个无轮循式 “解决消息时睡眠质量”这个概念。使我们立即看看下面代码:

上边这一函数将持续解决消息,并较多不断最久为 dwTimeout ms。这样的想法的关键仅仅应用MsgWaitForMultipleObjects/Ex 函数做为 WaitMessageTimeout 的取代,他会一直解决消息直至做到超时时间。

可是,有很多细节应注意。如果你想要备考,我已把它们链接到探讨特殊难题的初期文中。你可能觉得 CallMsgFilter 没特别大的功效,但当你意识到了客户有可能在你启用 Sleep 时按住电脑键盘网络加速器而且你很有可能希望它根据某人的 TranslateAccelerator 时,你能改变想法。消息筛选器给你机会挂勾到方式循环系统并实施网络加速器变换。

课外作业

将这一函数拓展为:在获取消息时等待一组返回值至一段指定超时时间。(我们可以在不改动许多编码的情形下进行此每日任务)

汇总

有这么一种感觉不知道对吗。MsgWaitForMultipleObjects 这一函数适用一些比较复杂的需求场景,里边会涉及到:线程同步对象,操作界面,窗口句柄,Windows 消息。我拓扑结构梅尔智慧办公平台 (Topomel Box) 在代码设计并不复杂,甚至还会刻意追寻一种更加简单,普通百姓非常容易的形式进行架构模式。为何?仅因我的确愚钝,搞不懂太复杂了的东西了。

“低调奢华”

最终

Raymond Chen的《The Old New Thing》就是我特别喜欢的blog之一,里边有很多有关Windows小常识,对于许多Windows服务平台开发人员而言,的确十分有协助。文中来源于:《You can call MsgWaitForMultipleObjects with zero handles》

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.miyuegong.com/kejizixun/71267.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666