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();
}