我正在尝试重新启动 WPF 中的应用程序。
我尝试了以下方法:
Process.Start(Application.ExecutablePath);
Process.GetCurrentProcess().Kill();
它不起作用,因为该应用程序被设置为单实例应用程序。
然后我厌倦了这个:
Process.GetCurrentProcess().Kill();
Process.Start(Application.ExecutablePath);
它不起作用,因为一旦我们杀死进程,它就不会到达第 2 行
有没有办法安排 .Start,这样我就不会遇到问题 #1。
最佳答案
您可以启动一个辅助应用程序,然后在延迟后重新启动您的主程序。几年前,当我编写一个 self 更新程序时,这就是我所采取的实现路径。这只是一个简单的程序,将可执行文件作为命令行参数,会休眠十分之一秒,然后启动它。
比我采取的更好的实现路径是让新启动的程序等待启动它的进程终止。等待任意长度的时间可能会使事情变得复杂。为了实现这一点,我可能会将进程 ID 传递给重新启动器,以便它准确地知道要等待哪个进程。
关于c# - 如何在 WPF 中安排 Process.Start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055844/