我有一個有趣的問題(C#/ WPF應用程序)。我正在使用此代碼來阻止運行我的應用程序的第二個實例。C#互斥問題,以防止二次
Mutex _mutex;
string mutexName = "Global\\{SOME_GUID}";
try
{
_mutex = new Mutex(false, mutexName);
}
catch (Exception)
{
//Possible second instance, do something here.
}
if (_mutex.WaitOne(0, false))
{
base.OnStartup(e);
}
else
{
//Do something here to close the second instance
}
如果我把代碼直接放在OnStartup方法下的主exe文件中,它就可以工作。但是,如果我包裝相同的代碼,並將其放在一個單獨的程序集/ DLL中,並從OnStartup方法調用該函數,它不檢測第二個實例。
有什麼建議嗎?
謝謝亞歷克斯,那是個問題。現在感覺有點尷尬,這是我的一個牛仔錯誤:( –