c++ - 代码跳过等待多个事件的指令
问题描述
我在Visual Studio 19中用 C++ 编写一个程序,该程序等待 640 个事件发生(在这种情况下,它只是一个 640 HANDLE的数组,其中每个位置都需要向右或向左移动,这并不重要)。
好吧,所有这些都被初始化为
for(i=0; i<640; i++)
vector[i]=CreateEvent(NULL, true, false, NULL);
这个问题是最重要的线程是等待所有事件发生的线程,我这样做:
WaitForMultipleObjects(640, vector, TRUE, INFINITE);
而且我有一个资本问题,即我的代码出于某种原因跳过了该行。有没有人可以告诉我发生了什么或给我一个替代解决方案?
解决方案
根据 的文档WaitForMultipleObjects
,可以等待的最大句柄数由 给出MAXIMUM_WAIT_OBJECTS
。搜索 Windows 头文件显示它被定义为
#define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects
在WinNT.h
. 所以你在等待太多的对象。
由于您想等待所有这些,您可以尝试将您的请求分解成小的、可管理的大小块。
推荐阅读
- python - Python,如何制作异步数据生成器?
- csv - ElasticSearch bool 查询 - 数百个 OR 术语
- algorithm - 为什么任意选择下一个单元格会影响回溯数独求解器的性能?
- powershell - 使用 PowerShell 执行并发进程
- jquery - 矩形离开鬼路径线
- c# - 关于如何做八向运动的建议
- java - SQL 语法错误 检查与您的 MariaDB 服务器对应的手册?
- swift - 在容器视图中以编程方式创建的标签不会针对文本展开
- javascript - CanActivate AuthGuard 被忽略?
- node.js - XMLHTTPRequest 在本地主机上的服务器上不起作用