C#-告知进程.开始等待,直到上一个实例完成

本文关键字:上一个 实例 进程 开始 等待 C#- | 更新日期: 2023-09-27 17:59:20

我当前正在调用一个从文本文件导入参数的进程

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

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

C#-告知进程.开始等待,直到上一个实例完成

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]"。在这种情况下,你可以在谷歌上搜索"msdn process class",你就会找到这个方法。

我认为您需要在语句末尾添加一个.WWaitForExit()命令,如下所示:

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

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

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

30000表示30秒(int为毫秒)。

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