在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()
方法等待进程退出。最后,我们读取进程的输出和错误信息,并将其输出到控制台。