C# 进程间上下文中的.net EventWaitHandle

C# 进程间上下文中的.net EventWaitHandle,c#,events,ipc,C#,Events,Ipc,在每个进程中创建命名的EventWaitHandle时,可以指定其应处于的状态。 现在,这在某种程度上与EventWaitHandle可用于IPC的假设相矛盾,因为另一个进程可能已将状态设置为“已发信号”,而我(在创建EventWaitHandle时)可以将其设置为“未发信号” 有什么想法吗 谢谢, 克里斯,你读了吗 从页面: 对命名系统事件使用此构造函数时,请为initialState指定false。此构造函数无法确定是否创建了命名系统事件,因此无法对命名事件的状态进行任何假设。要确定是否创建

在每个进程中创建命名的EventWaitHandle时,可以指定其应处于的状态。 现在,这在某种程度上与EventWaitHandle可用于IPC的假设相矛盾,因为另一个进程可能已将状态设置为“已发信号”,而我(在创建EventWaitHandle时)可以将其设置为“未发信号”

有什么想法吗

谢谢, 克里斯,你读了吗

从页面:

对命名系统事件使用此构造函数时,请为initialState指定false。此构造函数无法确定是否创建了命名系统事件,因此无法对命名事件的状态进行任何假设。要确定是否创建了命名事件,请使用EventWaitHandle(布尔,EventResetMode,String,Boolean)构造函数或EventWaitHandle(布尔,EventResetMode,String,Boolean,EventWaitHandleSecurity)构造函数


如果这是您正在使用的构造函数,则表明
initialState
标志仅在调用创建事件时使用。

我认为这是指创建状态。因此,除非你已经创建了事件,否则就没有机会知道事件处于哪种状态?@Christoph:不,你无法知道它处于哪种状态,即使你明确创建了它。在创建事件和执行下一行代码之间,完全可能有人附加到事件并更改了状态。无法明确检查(甚至无法知道)事件的状态,您所能做的就是设置、重置和等待。@Christoph:另外,如果这个答案回答了您的问题,请不要忘记接受它,这样其他浏览网站并有类似问题的人就会知道这解决了您的问题。