簡體   English   中英

C#-告訴Process.Start等待直到上一個實例完成

[英]C# - Telling Process.Start to wait until previous instance has finished

我目前正在調用一個從文本文件導入參數的過程,

盡管在讀取文本文件的第一行時它可以正常工作,但是文本文件的第二行將在之后立即執行。 有什么辦法告訴Process.Start等待直到上一個命令完成?

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

}
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 ”,並且您會找到該方法。

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

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

但是,這將是一個無限的等待(通常是一件壞事)。 如果要添加超時,可以使用如下方法的重載:

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

30,000代表30秒(整數是毫秒)。

您可以查看是否通過GetProcesses找到了剛啟動的進程,如果在啟動第二個進程之前的固定間隔后沒有嘗試重試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM