重启应用程序我们有两种方法:

一、Restart方法

System.Windows.Forms.Application.Restart();

经多次测试发现有时候只会关闭程序,并不会重新启动

二、进程的Start和Kill方法

System.Diagnostics.Process.Start(Application.ExecutablePath);

System.Diagnostics.Process.GetCurrentProcess().Kill();

经多次测试使用进程进行重启比较稳定。

VS2017zhong新建窗体应用程序RestartProgramDemo。

将默认的Form1重启为FormRestartProgram,窗体FormRestartProgram,设计如下:

windows7重启redis windows7重启桌面进程_Click

将按钮【重启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);//停止所有项目
        }
    }
}

演示重启程序如图: 

windows7重启redis windows7重启桌面进程_Restart_02