我目前正在调用一个从文本文件
输入参数的进程虽然读取文本文件的一行时它可以正常工作,但文本文件的第二行是直接执行的。有没有办法告诉Process.Start等到上一个命令完成?
static void Main(string[] args)
{
foreach (string exename in System.IO.File.ReadAllLines("test.txt"))
{
Process.Start("test.exe", "\"" + exename + "\"");
}
}
答案 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找到的,如果在启动第二个流程之前没有在固定的时间间隔后再次尝试