C# - 告诉Process.Start等到上一个实例完成

时间:2011-06-17 14:15:06

标签: c# .net windows

我目前正在调用一个从文本文件

输入参数的进程

虽然读取文本文件的一行时它可以正常工作,但文本文件的第二行是直接执行的。有没有办法告诉Process.Start等到上一个命令完成?

static void Main(string[] args)
{
    foreach (string exename in System.IO.File.ReadAllLines("test.txt"))
    {
        Process.Start("test.exe", "\"" + exename + "\"");
    }

}

3 个答案:

答案 0 :(得分:6)

static void Main(string[] args)
{
    foreach (string exename in System.IO.File.ReadAllLines("test.txt"))
    {
        Process.Start("test.exe", "\"" + exename + "\"").WaitForExit();
    }

}

记录在MSDN。我通常谷歌“MSDN [class/method/property]”。在这种情况下,您可以使用Google搜索“msdn process class”并找到该方法。

答案 1 :(得分:1)

我相信您需要在语句末尾添加.WaitForExit()命令,如下所示:

Process.Start("test.exe", "\"" + exename + "\"").WaitForExit();

然而,这将是一个无限的等待(通常是一件坏事)。如果要添加超时,可以使用方法的重载,如下所示:

Process.Start("test.exe", "\"" + exename + "\"").WaitForExit(30000);

30,000代表30秒(int是毫秒)。

答案 2 :(得分:0)

您可以查看刚刚启动的流程是否是通过GetProcesses找到的,如果在启动第二个流程之前没有在固定的时间间隔后再次尝试