防止在C#(WIn8)上打开多个应用程序,互斥解决方案无法正常工作

时间:2015-04-29 04:49:04

标签: c# mutex

我试图阻止在Windows 8上以C#开头的应用程序的多个副本。

bool isMutexNotExist;
var mutex = new Mutex(true, "name", out isMutexNotExist);

if (!isMutexNotExist)
{
     SystemSounds.Beep.Play();
     Application.Current.Shutdown();
}

mutex.WaitOne();
GC.KeepAlive(mutex);

此代码在使用.Net 4.5的调试和发布模式(Visual Studio 2013)中的Windows 7(戴尔笔记本电脑)上正常工作,但在Win 8(Microsoft Surface 3)上,它允许另一个副本启动。我找不到任何关于Mutex在Win7& Win8所以我不确定发生了什么。如果没有mutex.WaitOne(),代码在发布模式下无法在Windows 7上运行。

0 个答案:

没有答案