2013-04-12 73 views
0

我已經編寫,運行下面的代碼行的可執行程序:爲什麼我的EventWaitHandle獲得UnauthorizedAccessException?

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

而這個可執行程序運行時我可以設置這個事件,它工作正常,但一旦可執行文件被殺害了作爲一個過程(從任務管理器,如果你手動殺死進程,例如),我會自動重新啓動進程後,我殺了它,我得到一個「System.UnauthorizedAccessException:訪問路徑'全球\ immediateShutdownEvent'被拒絕」,即使它運行系統的相同上下文。爲什麼是這樣的,我該如何解決?

+1

你允許Windows從死亡進程中清理彈片多少時間? –

+0

那麼,有沒有辦法強制它清理它?喜歡,如果它仍然在附近,我該如何強制它關閉這個句柄? – Alexandru

+0

像,我可以看到它等待主人死亡殺死手柄......等重新啓動,我可以嘗試打開手柄,並強迫它清理它......但我一直無法強制它成功了。有任何想法嗎?我的代碼可能是錯誤的。 – Alexandru

回答

0

我想通過使用OpenExisting()並獲取WaitEventHandle ...然後關閉它(如果存在的話),儘管說您的當前帳戶需要訪問權限才能刪除此事件。

相關問題