c# - 如何在 WPF 中安排 Process.Start

标签 c# wpf process.start

我正在尝试重新启动 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/

相关文章:

c# - Process.Start() 启动的应用程序未获取参数

c# - 传入 WCF 消息后 WPF UI 未更新

c# - List<String[]> - 需要有关如何从 String[] 中提取记录的建议

c# - 当其他属性正常工作时,WPF 绑定(bind)错误到类属性

c# - 使用 WPF WebBrowser 显示内容防止滚动条

c# - 如何从C#运行.exe

c# - 为网站使用静态 ADO.NET 函数不好吗?

c# - 多个左连接 LINQ-to-entities

c# - 向 WPF 动态添加事件处理程序

c# - Verb = "runas"的进程不以参数中定义的凭据开始