gpt4 book ai didi

c# - 混淆 EventWaitHandle 的名称

转载 作者:行者123 更新时间:2023-11-30 20:47:20 25 4
gpt4 key购买 nike

考虑以下 MyServer 端的代码片段

public void CreateEvent()
{
var serverReadyEvent = new EventWaitHandle(false, EventResetMode.AutoReset, "aaa");
}

从msdn上查到ctor的第3个参数是什么意思

name

Type: System.String

The name of a system-wide synchronization event.

但是我发现我可以多次调用 CreateEvent 方法并且没有任何异常,这是否意味着存在多个同名的 EventWaitHandle 实例?这是正确的行为吗?

下面是MyClient端的代码片段

public void OpenEvent()
{
EventWaitHandle.OpenExisting("aaa");
}

如果在MyServer端调用了2次CreateEvent,那么在MyClient端调用OpenEvent后会打开哪个事件?

最佳答案

the documentation for CreateEvent() .

lpName 参数的文档指出:

If lpName matches the name of an existing named event object, this function requests the EVENT_ALL_ACCESS access right. In this case, the bManualReset and bInitialState parameters are ignored because they have already been set by the creating process.

因此您可以看到,如果事件已经存在,将返回现有事件的句柄。

因此只有一个事件存在,关于打开哪个事件的问题的答案是“创建的唯一事件”。

关于c# - 混淆 EventWaitHandle 的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887293/

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