【发布时间】:2012-06-21 21:04:01
【问题描述】:
我有一个 C# 程序,它会像这样打开一个 EventWaitHandle 以由 Windows 服务触发。
EventWaitHandle sampleEventHandle = new EventWaitHandle(false, EventResetMode.AutoReset, "Global\\sampleEvent");
当程序现在被杀死(或由于意外错误而死)时,EventWaitHandle 没有被关闭,并且在重新启动程序时会发生以下错误:
System.UnauthorizedAccessException:对路径的访问被拒绝。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.Threading.EventWaitHandle..ctor(Boolean initialState, EventResetMode mode, String name)
一分钟后,EventWaitHandle 将关闭,您可以重新启动应用程序。
任何想法如何解决这个问题?
【问题讨论】:
-
谢谢。我认为这将解决我的问题。你知道默认的 EventWaitHandleSecurity 是什么吗? (只是出于兴趣,我想知道)
-
知道如何在进程终止时自动关闭 EventWaitHandle 仍然会很有趣......
-
我没有。只是做了一个快速的谷歌搜索,实验看起来不像我可以立即完成的事情(但链接看起来对你很有希望)。如果我以后有时间,打算检查一下。
标签: c# .net events windows-services ipc