1、修改Program.cs内的程序启动函数
static class Program{public static System.Threading.Mutex Instance;/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);bool NoRUN;//返回是否赋予了使用线程的互斥体初始所属权 Instance = new System.Threading.Mutex(true, "MutexName", out NoRUN); //同步基元变量 if (NoRUN) //赋予了线程初始所属权,也就是首次使用互斥体 { Application.Run(new CCD());Instance.ReleaseMutex();}else{MessageBox.Show("已经启动了一个程序,请先退出!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);Application.Exit();}}}
2、调用重启函数;因为未知原因调用系统重启函数Application.Restart()失败,此处重写了重启函数。
public void AppRestart()
{Program.Instance.Close();Process.Start(Application.ExecutablePath);Process p = Process.GetCurrentProcess();p.Kill();
}