重启应用程序我们有两种方法:
一、Restart方法
System.Windows.Forms.Application.Restart();
经多次测试发现有时候只会关闭程序,并不会重新启动
二、进程的Start和Kill方法
System.Diagnostics.Process.Start(Application.ExecutablePath);
System.Diagnostics.Process.GetCurrentProcess().Kill();
经多次测试使用进程进行重启比较稳定。
VS2017zhong新建窗体应用程序RestartProgramDemo。
将默认的Form1重启为FormRestartProgram,窗体FormRestartProgram,设计如下:
将按钮【重启btnRestart】和【关闭btnClose】绑定Click事件。
窗体FormRestartProgram的主要源程序如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RestartProgramDemo
{
public partial class FormRestartProgram : Form
{
public FormRestartProgram()
{
InitializeComponent();
}
private void btnRestart_Click(object sender, EventArgs e)
{
//使用Application.Restart()方法可能无法重启成功,只会关闭,斯内科,20220519
//这里使用进程System.Diagnostics.Process来停止和启动
//Application.Restart();
//开启新的实例
System.Diagnostics.Process.Start(Application.ExecutablePath);
//关闭当前实例
System.Diagnostics.Process.GetCurrentProcess().Kill();
Application.Exit();//退出当前项目,如果是子项目,则不会停止主项目
System.Environment.Exit(0);//停止所有项目
}
private void btnClose_Click(object sender, EventArgs e)
{
Application.Exit();//退出当前项目,如果是子项目,则不会停止主项目
System.Environment.Exit(0);//停止所有项目
}
}
}
演示重启程序如图: