2010-04-29 14 views
0

在每個進程中創建一個名爲EventWaitHandle時,您可以指定它應該處於哪種狀態。 現在這與某種程度上與EventWaitHandle可用於IPC的假設相矛盾,因爲另一個進程可能已將狀態設置爲「發信號」,而我(創建EventWaitHandle時)可將其設置爲「未發送信號」。.net在進程上下文中的EventWaitHandle

任何想法?

感謝, 克里斯

回答

2

你看過the documentation

從頁面:

使用此構造名爲系統事件,指定爲FALSE的初始化狀態。此構造函數無法確定是否創建了命名系統事件,因此您無法對命名事件的狀態進行任何假設。要確定是否創建了命名事件,請使用EventWaitHandle(Boolean,EventResetMode,String,Boolean)構造函數或EventWaitHandle(Boolean,EventResetMode,String,Boolean,EventWaitHandleSecurity)構造函數。

如果這是你正在使用的構造函數,然後the documentation for thaf constructor表明,當你調用創建該事件的initialState標誌時才使用。

+0

嗯,我認爲這是指創造狀態。所以沒有機會知道事件是在哪個狀態,除非你創建了它? – Christoph 2010-04-29 15:02:47

+0

有道理,謝謝! – Christoph 2010-04-29 15:04:31

+0

@Christoph:不,你不知道它在哪個狀態,*即使你明確地創建它*。在創建事件和執行下一行代碼之間完全有可能有人已附加到事件並更改了狀態。沒有辦法明確檢查(甚至不知道)事件的狀態,你所能做的就是設置,重置和等待。 – 2010-04-29 15:08:07

相關問題