c++ - 为 WaitforMultipleObjects 增加 MAXIMUM_WAIT_OBJECTS

标签 c++ multithreading winapi

要等待超过 MAXIMUM_WAIT_OBJECTS 的对象,最简单的方法是什么? MSDN 列出了这个:

  • 创建一个线程等待 MAXIMUM_WAIT_OBJECTS 句柄,然后等待该线程和其他句柄。使用此技术将句柄分成 MAXIMUM_WAIT_OBJECTS 组。
  • 调用 RegisterWaitForSingleObject 等待每个句柄。线程池中的等待线程等待 MAXIMUM_WAIT_OBJECTS 注册对象,并在对象发出信号或超时间隔到期后分配工作线程。

但他们都不是很清楚。这种情况将等待超过一千个线程句柄的数组。

最佳答案

如果您发现自己在等待大量对象,您可能想要查看 IO 完成端口。对于大量并行操作,IOCP 的效率要高得多。

而且 IOCP 这个名称具有误导性,您也可以轻松地将 IOCP 用于您自己的同步结构。

关于c++ - 为 WaitforMultipleObjects 增加 MAXIMUM_WAIT_OBJECTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5136775/

相关文章:

C++/SFML 显示小故障,通过鼠标单击更改 Sprite 成员

c++ - 如何避免在 linux 上使用系统标准 C/C++ 库?

c++ - 如何正确使用 stdafx.h?

java - 不同线程中填充的列表在调用者线程中显示为空 - Java

c - 根据优先级强制 Win32 线程调度到定义的顺序

c++ - 将 SetSysColor 限制为一个应用程序

c - IDispatch::Invoke 将 typedef 结构的指针作为参数传递

c++ - 没有 math.h 的 sin & cos 函数

每次我想要获取登录信息时,JavaFX 任务都会将状态更改为失败

c++ - 有效地收集/分散任务