C#实现在cmd异步运行两个process
时间: 2024-10-28 09:11:02 浏览: 32
C#隐式运行CMD命令(隐藏命令窗口)
在C#中,如果你想要异步地在CMD(命令提示符)中运行两个进程并且获取它们的结果,你可以使用`System.Diagnostics.Process`类以及`Task`或`async/await`关键字。这里是一个简单的示例:
```csharp
using System;
using System.Diagnostics;
using System.Threading.Tasks;
public async Task RunProcessesAsync(string process1Command, string process2Command)
{
// 创建第一个进程并启动
ProcessStartInfo psi1 = new ProcessStartInfo();
psi1.FileName = "cmd.exe"; // 使用cmd
psi1.Arguments = $"/c {process1Command}"; // 过滤命令
psi1.UseShellExecute = false; // 没有shell交互
psi1.RedirectStandardOutput = true; // 重定向输出
var proc1 = new Process();
proc1.StartInfo = psi1;
await proc1.StartAsync();
// 等待第一个进程完成,同时开始第二个进程
await proc1.StandardOutput.ReadToEndAsync(); // 接收第一个进程的输出
psi1.Arguments = $"/c {process2Command}"; // 更新第二个进程命令
proc1.StartInfo = psi1;
// 同样等待第二个进程完成
await proc1.StandardOutput.ReadToEndAsync();
// 关闭进程
proc1.WaitForExit();
proc1.Close();
}
// 调用函数,异步运行两个过程
public static void Main()
{
string command1 = "你的第一个命令";
string command2 = "你的第二个命令";
RunProcessesAsync(command1, command2).Wait(); // 如果你想阻塞直到任务完成
}
```
阅读全文