在C#中,ContinueWith
方法通常用于异步编程,它允许你在一个任务的完成后执行另一个任务。ContinueWith
可以处理顺序执行,但你需要注意正确地安排任务的执行顺序。
以下是一个简单的示例,展示了如何使用ContinueWith
来处理顺序执行的任务:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建第一个异步任务
var task1 = Task.Run(() =>
{
Console.WriteLine("Task 1 started.");
Thread.Sleep(1000); // 模拟耗时操作
Console.WriteLine("Task 1 completed.");
});
// 使用 ContinueWith 处理第一个任务的完成
task1.ContinueWith(t =>
{
Console.WriteLine("Task 2 started.");
Thread.Sleep(1000); // 模拟耗时操作
Console.WriteLine("Task 2 completed.");
});
// 等待所有任务完成
await Task.WhenAll(task1);
}
}
在这个示例中,我们创建了两个异步任务task1
和task2
。task1
完成后,ContinueWith
方法会立即执行task2
。这样,我们可以确保task2
在task1
完成后顺序执行。
需要注意的是,ContinueWith
方法不会阻塞主线程,它会在后台异步执行。如果你需要在ContinueWith
中等待任务完成,可以使用await
关键字。