我有一个有趣的问题(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方法调用该函数,它不检测第二个实例。
有什么建议吗?
谢谢亚历克斯,那是个问题。现在感觉有点尴尬,这是我的一个牛仔错误:( –