gpt4 book ai didi

boost - Boost 中的 WaitForMultipleObjects 功能

转载 作者:行者123 更新时间:2023-12-03 00:35:55 28 4
gpt4 key购买 nike

我需要在多平台项目中使用 WaitForMultipleObjects 功能。
我可以用 Boost 中的什么来替代它?

最佳答案

我找到了这个问题的答案:不存在。

但是我已经找到并回答了 http://lists.boost.org/Archives/boost/2004/12/77175.php

希望对其他人有帮助

等待一个条件和等待多个对象并不像乍一看那么密切相关。条件不携带状态,而您正在等待的句柄则携带状态。条件只是表示状态发生了变化。具体来说,受互斥体保护的某个(组)变量的状态变化。您更需要的是,当操作系统提供的句柄更改状态时,会发出特定条件的信号。我最终创建了一个小类“wfmo”,条件是被标记为成员。该类有要添加的成员函数操作系统在内部处理并创建一个在 WaitForMultipleObjects 上阻塞的线程。返回时它会发出条件信号。

这是有效的。但我认为它确实以务实的方式解决了这个问题。 (我担心在某些情况下,由于附加线程而导致的运行时开销可能不可忽略。)要消除附加线程,您需要修改condition.wait() 接受您正在等待的对象的句柄。当前在内部等待使用 WaitForSingleObject。用 WaitForMultipleObjects 替换它们将是一个简单的任务。但是:那么您需要提供操作系统句柄!这破坏了可移植性。真正的问题是:Boost 目前没有低级 IO 概念来定义其自己的IO句柄之类的。尽管这个话题在列表中被反复讨论,但仍然存在还没有任何提案(至少在形式上)解决这些问题。是的,已经有关于网络等的提案,但没有关于通用(低级)IO 的提案。 (我认为最重要的是,应该建立网络。)

关于boost - Boost 中的 WaitForMultipleObjects 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11950808/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com