在C#中,使用ProcessStartInfo
類可以啟動和管理外部進程。要管理進程的生命周期,你需要執行以下步驟:
ProcessStartInfo
實例,并設置其屬性,如進程名稱、參數、工作目錄等。ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "notepad.exe",
Arguments = "",
WorkingDirectory = @"C:\Windows\System32"
};
Process.Start()
方法啟動進程。using (Process process = Process.Start(startInfo))
{
// 進程已啟動,可以在這里執行其他操作
}
在這個例子中,我們使用了using
語句來確保進程在完成后被正確關閉。這是因為Process
類實現了IDisposable
接口,它要求在不再需要時釋放資源。
Process.WaitForExit()
方法。using (Process process = Process.Start(startInfo))
{
process.WaitForExit(); // 等待進程完成
}
Process
類的StandardOutput
和StandardInput
屬性。using (Process process = Process.Start(startInfo))
{
using (StreamReader reader = process.StandardOutput)
{
string output = reader.ReadToEnd(); // 讀取進程輸出
Console.WriteLine(output);
}
using (StreamWriter writer = process.StandardInput)
{
writer.WriteLine("Hello, World!"); // 向進程發送輸入
}
process.WaitForExit(); // 等待進程完成
}
try-catch
語句捕獲ProcessStartException
異常。try
{
using (Process process = Process.Start(startInfo))
{
process.WaitForExit();
}
}
catch (ProcessStartException ex)
{
Console.WriteLine($"Failed to start process: {ex.Message}");
}
通過以上步驟,你可以使用ProcessStartInfo
類來管理C#中的進程生命周期。