Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的EventWaitHandle获得未授权的DaccessException?_C#_.net_Events_Event Wait Handle - Fatal编程技术网

C# 为什么我的EventWaitHandle获得未授权的DaccessException?

C# 为什么我的EventWaitHandle获得未授权的DaccessException?,c#,.net,events,event-wait-handle,C#,.net,Events,Event Wait Handle,我编写了一个可执行进程,该进程运行以下代码行: immediateShutdownEvent = new EventWaitHandle(false, EventResetMode.ManualReset, "Global\\immediateShutdownEvent", out createdNew, security); 我可以在这个可执行进程运行时设置这个事件,它可以正常工作,但是一旦这个可执行进程作为一个进程被终止(例如,如果您手动终止该进程,则可以从task manager中终止)

我编写了一个可执行进程,该进程运行以下代码行:

immediateShutdownEvent = new EventWaitHandle(false, EventResetMode.ManualReset, "Global\\immediateShutdownEvent", out createdNew, security);

我可以在这个可执行进程运行时设置这个事件,它可以正常工作,但是一旦这个可执行进程作为一个进程被终止(例如,如果您手动终止该进程,则可以从task manager中终止),并且我在终止该进程后立即自动重新启动该进程,我会得到一个“System.UnauthorizedAccessException:对路径'Global\immediateShutdownEvent'的访问被拒绝”,即使它在相同的系统上下文下运行。这是为什么,我该如何修复它?

我通过使用OpenExisting()找到了绕过它的方法抓取WaitEventHandle…然后关闭它(如果它存在),尽管你的当前帐户需要访问权限才能删除此事件。

你允许Windows有多少时间清理被杀死进程中的碎片?我有没有办法强制它清理?比如,如果它存在,我如何强制它关闭此句柄仍然存在?比如,我可以看到它在等待所有者死亡来杀死句柄…所以在重新启动时,我可以尝试打开句柄并强制它清理它…但我还不能成功地强制它。有什么想法吗?我的代码可能是错的。@HansPassant-有什么想法吗?有没有办法等待Windows清理EventWaitHandles?有多少时间e如果由于进程终止而从未对EventWaitHandle调用Close,是否需要清理它?