C#进程重启循环

标签 c# process restart

我正在尝试制作一个控制台应用程序来监视某些进程并在它退出时重新启动它。 因此,控制台应用程序始终处于打开状态,它唯一的工作就是重新启动其他一些进程。

我在下面发布了我的代码..它基本上可以工作,但只是为了一个进程重启...

如果有任何帮助,我将不胜感激!

提前致谢!

    {
        System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName(SOME_PROCESS);
        p[0].Exited += new EventHandler(Startup_Exited);

        while (!p[0].HasExited)
        {
            p[0].WaitForExit();
        }

        //Application.Run();
    }

    private static void Startup_Exited(object sender, EventArgs e)
    {
        System.Diagnostics.Process.Start(AGAIN_THAT_SAME_PROCESS);  
    }

最佳答案

您需要一个循环,并且在循环的顶部您需要在重新启动程序后将p 重新附加到新进程。所以像这样:

Process p = /* get the current instance of the program */;
while (true)
{
  p.WaitForExit();
  p = Process.Start(/* the program */);
}

请注意,由于 Process.Start 返回新实例的 Process 对象,您实际上不需要重新执行搜索:您可以直接等待新的 Process 对象。

关于C#进程重启循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466767/

相关文章:

c# - 左右粗边框

c# - 从 LinkedList<> 中删除项目

c# - 如何从 ViewModel 开始 Storyboard?

c# - 将隐式类型的局部变量初始化为 IList

Android:子进程(logcat)在父进程(app)死后继续运行

linux - 启动 mvn exec :java as linux daemon

c# - 从后台进程调用可执行文件并向其传递参数

Android Activity 重启

server - 如何使用 php 脚本重新启动 apache2 服务?

java - 在 Ubuntu 下以编程方式 self 重启 Java 应用程序的最佳方法是什么