K. Scott Allen 在为此目的使用Mutex 方面做了很好的准备,并且您将遇到GC的问题.
如果我想在机器上的所有会话中只运行一个应用程序实例,我可以将命名的互斥锁放入带有前缀"Global"的全局命名空间.
[STAThread]
static void Main()
{
using(Mutex mutex = new Mutex(false, "Global\\" + appGuid))
{
if(!mutex.WaitOne(0, false))
{
MessageBox.Show("Instance already running");
return;
}
Application.Run(new Form1());
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
改变字符串文字使用转义反斜杠代替@,SO语法荧光笔不喜欢逐字字符串.