如果您在主应用程序表单中尝试使用System.Diagnostics.Process.Start( Application.ExecutablePath); // to start new instance of applicationthis.Close(); //to turn off current app
一个更简单的方法对我有用:Application.Restart();Environment.Exit(0);这保留了命令行参数,并且尽管事件处理程序通常会阻止应用程序关闭。Restart()调用尝试退出,无论如何都启动一个新实例并返回。然后,Exit()调用终止进程,而不给任何事件处理程序提供运行的机会。有一个非常短暂的时期,两个进程都在运行,这在我的情况下不是问题,但可能在其他情况下。退出代码0 in Environment.Exit(0);指定干净关闭。您也可以使用1退出以指定发生的错误