[英]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.