可以使用互斥量(System.Threading.Mutex)
同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,就只运行一个实例。
在应用程序的main
函数方法内,替换如下代码:
bool createNew;
using (System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out createNew))
{
if (createNew)
{
if (form.ShowDialog() == DialogResult.OK)
{
form.Dispose();
SplashScreenHelper.Application.Run(new string[] { "" });
}
}
else
{
MessageBox.Show("应用程序已经在运行中...");
System.Threading.Thread.Sleep(1000);
System.Environment.Exit(1);
}
}
网友评论