我的應用程序被迫使用第三方模塊,如果兩個實例在同一臺機器上同時啓動,它將藍屏Windows。要解決這個問題,我的C#應用程序有一個互斥體:跨用戶C#互斥體
static Mutex mutex = new Mutex(true, "{MyApp_b9d19f99-b83e-4755-9b11-d204dbd6d096}");
我檢查它是否存在 - 如果是這樣我顯示錯誤消息,並關閉應用程序:
bool IsAnotherInstanceRunning()
{
if (mutex.WaitOne(TimeSpan.Zero, true))
return (true);
else
return (false);
}
的問題是如果兩個用戶可以同時登錄並打開該應用程序,並且IsAnotherInstanceRunning()將返回false。
我該如何解決這個問題?
如何在第三方模塊做到這一點?你有聯繫他們的支持嗎? – SLaks 2010-05-13 21:46:38
除非它是一個內核級驅動程序,這是令人驚訝的困難,以使Windows藍屏這些日子 - 什麼在世界上是模塊是在做什麼? – 2010-05-13 21:52:27
@BlueRaja:從用戶模式藍屏Windows很容易。你有沒有試過殺死csrss.exe? – 2010-05-13 21:57:19