我需要做一些跨進程同步。windows .net跨進程同步
只有當進程A正在運行時,進程B才應該執行一些操作。 我嘗試使用互斥和EventWaitHandles這樣的:
在處理的主要:
EventWaitHandle eventWaitHandle = new EventWaitHandle(true, EventResetMode.ManualReset, "SOMEGUID");
在方法B:
private static bool IsProcessARunning(string mutexStr)
{
try
{
EventWaitHandle.OpenExisting(mutexStr);
return true;
}
catch (WaitHandleCannotBeOpenedException e)
{
return false;
}
}
而是一個過程之後總是將開始一旦 'IsProcessARunning' 方法即使進程A關閉,也返回true。 任何想法我在這裏做錯了什麼?
編碼一個小程序,嘗試重現您報告的行爲。它使用Mutex或EventWaitHandle按預期返回false。你確定流程A不再運行嗎? –