C# 编写一个以程序名作为其命令行参数的程序

C# 编写一个以程序名作为其命令行参数的程序,c#,C#,我想做的是:编写一个程序,将一系列程序名作为其命令行参数。您的目标是确保这些程序始终在执行。因此,如果它们死亡,您的程序将重新启动它们。这是我的代码,但问题是它不是一次启动所有程序,所以如果第一个程序启动并且没有终止,你就不会永远等待。如何修复我的代码 class Program { public static void Main(params string[] args) { while (true) { foreach

我想做的是:编写一个程序,将一系列程序名作为其命令行参数。您的目标是确保这些程序始终在执行。因此,如果它们死亡,您的程序将重新启动它们。这是我的代码,但问题是它不是一次启动所有程序,所以如果第一个程序启动并且没有终止,你就不会永远等待。如何修复我的代码

class Program
{
    public static void Main(params string[] args)
    {
        while (true)
        {
            foreach (string s in args) 
            {
                Process program = new Process();

                program.StartInfo.FileName = s;
                program.EnableRaisingEvents = true;
                program.Start();
                program.WaitForExit();
                Properties.Settings.Default.IsRestarting = true;
                Properties.Settings.Default.Save();
                Application.Restart();
            }
        }
    }
}

每个程序可能需要一个单独的线程。我如何修复代码?正如@RBarryYoung指出的,一种方法是为每个命令行参数启动一个线程。每个线程都会启动他们的程序,并等待它停止——然后一次又一次地启动它,等等(以满足每个程序持续运行的要求)。什么版本的.net和Visual Studio?都是2013版本