C#异步实现在cmd同时运行两个process
时间: 2024-10-28 07:15:43 浏览: 26
C#隐式运行CMD命令(隐藏命令窗口)
在C#中,同时在命令提示符(CMD)里异步运行两个进程,你可以使用`Process`类的StartAsync方法配合`Task.WaitAll`或者`Task.WhenAll`来实现。这里是一个简单的示例:
```csharp
using System;
using System.Threading.Tasks;
public async void RunProcesses(string process1Command, string process2Command)
{
// 创建进程的启动信息
var process1 = new Process() { StartInfo = new ProcessStartInfo("cmd.exe", $"/c {process1Command}") };
var process2 = new Process() { StartInfo = new ProcessStartInfo("cmd.exe", $"/c {process2Command}") };
// 启动进程并等待它们完成
var tasks = new Task[2];
tasks[0] = Process.StartAsync(process1);
tasks[1] = Process.StartAsync(process2);
await Task.WhenAll(tasks); // 或者 await Task.WaitAll(tasks);
// 进程执行完毕后,你可以选择进一步操作或者释放资源
}
// 调用方法
RunProcesses("your_command1", "your_command2");
```
在这个例子中,我们首先创建了两个进程的启动信息,然后使用`StartAsync`方法异步启动这两个进程。`Task.WhenAll`(或`Task.WaitAll`)会阻塞当前线程,直到两个进程都结束。注意,你需要替换`"your_command1"`和`"your_command2"`为实际的命令行指令。
阅读全文