在C#中,可以使用Process
類創建子進程,并通過設置ProcessStartInfo
的屬性來實現子進程的同步
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// 創建一個新的Process對象
Process process = new Process();
// 配置ProcessStartInfo
process.StartInfo.FileName = "notepad.exe"; // 要啟動的程序路徑
process.StartInfo.UseShellExecute = false; // 不使用操作系統shell啟動進程
process.StartInfo.CreateNoWindow = true; // 不創建新窗口
process.StartInfo.RedirectStandardOutput = true; // 重定向標準輸出
process.StartInfo.RedirectStandardError = true; // 重定向錯誤輸出
// 啟動進程
process.Start();
// 等待進程退出
process.WaitForExit();
// 讀取進程的輸出和錯誤信息
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
// 關閉進程
process.Close();
// 輸出結果
Console.WriteLine("Output: " + output);
Console.WriteLine("Error: " + error);
}
}
在這個示例中,我們創建了一個新的Process
對象,并配置了ProcessStartInfo
以啟動Notepad程序。我們將UseShellExecute
設置為false
,以便可以同步等待進程退出。然后,我們調用process.Start()
啟動進程,并使用process.WaitForExit()
方法等待進程退出。最后,我們讀取進程的輸出和錯誤信息,并將其輸出到控制臺。