一、使用互斥体 Mutex:
Mutex 说明:https://msdn.microsoft.com/zh-cn/library/system.threading.mutex.aspx
#region 使用mutex()互斥体判断
bool isRuned;
//
System.Threading.Mutex mutex = new System.Threading.Mutex(true, "OnlyRunOneInstance", out isRuned);
if (isRuned)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
}
else
{
MessageBox.Show("程序已经运行");
}
#endregion
二、使用进程数量判断
#region 使用改程序进程数量判断
Process[] processcollection = Process.GetProcessesByName(Application.CompanyName);
if (processcollection.Length > 1)
{
MessageBox.Show("应用程序已经在运行中。。");
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// 运行该应用程序
Application.Run(new Main());
}
#endregion
第一种方法软件就只能开一个,第二种方法启动程序名字修改后可以多开(同一个名字只能开一个);
本文参考:https://blog.youkuaiyun.com/u011981242/article/details/51338278
本文介绍了两种确保程序只运行一个实例的方法:一是使用Mutex互斥体进行判断;二是通过获取并检查当前运行进程的数量来判断。前者适用于严格限制程序实例数的情况,后者允许通过更改程序名称来启动多个实例。
650

被折叠的 条评论
为什么被折叠?



