我有一个需要控制许多从属进程来完成任务的应用程序。并且有一个匹配线程来完成匹配工作。我使用 EventWaitHandle 在它们之间进行通信,在空闲时间匹配线程等待从机的事件,代码如下:
EventWaitHandle.WaitAny(GetWaitEvents());
//GetWaitEvents method will return all slave process's EventWaitHandle
在从属进程中,一旦它是空闲的。它将触发事件以将另一个任务与此进程匹配。代码如:
ProxyEvent.Set()
但是,当事件数量超过 64 时,会抛出 System.NotSupportedException。在检查了从Microsoft获取的代码后,我发现它是框架代码中的硬代码:
private const int MAX_WAITHANDLES = 64;
我的问题是:
- 为什么会有这样的限制?为什么是64?
- 这个限制有什么解决方法吗?