异步并行的task怎么用
时间: 2024-09-17 19:03:23 浏览: 50
C#并行编程-Task
在C#中,你可以使用`Task`和`async`/`await`关键字来处理异步并行操作。`Task`类是.NET框架中用于表示异步操作的结果的一个基本类型,而`async`/`await`则提供了一种更简洁的方式来编写异步代码。
以下是一个简单的示例,展示了如何使用`Task.Run()`方法并行执行多个任务:
```csharp
using System;
using System.Threading.Tasks;
public class Program
{
public static async Task Main()
{
// 定义要并行执行的任务列表
List<Task> tasks = new List<Task>();
// 添加几个异步任务到列表中
for (int i = 0; i < 5; i++)
{
int index = i;
tasks.Add(Task.Run(() => LongRunningOperation(index)));
}
try
{
// 同时等待所有任务完成
await Task.WhenAll(tasks);
Console.WriteLine("All tasks completed.");
}
catch (Exception ex)
{
Console.WriteLine($"Error occurred: {ex.Message}");
}
}
// 这是一个模拟耗时操作的方法
private static async Task LongRunningOperation(int index)
{
await Task.Delay(1000); // 模拟1秒延迟
Console.WriteLine($"Task {index} completed after a delay.");
}
}
```
在这个例子中,我们创建了一个包含五个任务的列表,每个任务都调用了`LongRunningOperation`方法(这是一个模拟长时间运行的操作)。然后,我们使用`Task.WhenAll`方法等待所有任务完成。如果你需要控制这些任务的执行顺序或优先级,可以考虑使用`Parallel.ForEach`或其他并发库如`System.Linq.Parallel`。
阅读全文