【发布时间】:2011-06-22 00:52:09
【问题描述】:
我遇到了一个有趣的问题(C#/WPF 应用程序)。我正在使用此代码来防止我的应用程序的第二个实例运行。
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 方法调用该函数,它不会检测到第二个实例。
有什么建议吗?
【问题讨论】:
标签: c# multithreading mutex