在程序运行结束时释放互斥对象,然后执行重启。
static string mutexFlagStr = "TEST1";
static public bool requestRestart = false;
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// 通过互斥来防止程序多重启动
bool blnCreate;
Mutex m = new Mutex(true, mutexFlagStr, out blnCreate);
if (blnCreate)
{
Application.Run(new FormMain());
m.ReleaseMutex();
m.Close();
if (requestRestart)
{
Application.Restart();
}
}
else
{
MessageBox.Show("程序已经启动,不能再次启动!");
Application.Exit();
}
}
在执行重启时,先将requestRestart 赋值为true,然后执行Application.Exit();