C# 中的 ContinueWith 方法用于在任务(Task)完成或失败时执行另一个任务。它的用法并不复杂,但需要理解其工作原理和注意事项。
ContinueWith 方法接受一个 Action<Task> 委托,该委托将在前一个任务完成后执行。你可以使用 ContinueWith 方法来处理前一个任务的结果或异常,或者在前一个任务失败时执行特定的操作。
以下是一个简单的示例,展示了如何使用 ContinueWith 方法:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建一个任务
Task task = Task.Run(() =>
{
Console.WriteLine("任务开始");
Thread.Sleep(1000);
Console.WriteLine("任务完成");
});
// 使用 ContinueWith 方法处理任务完成后的操作
task.ContinueWith(t =>
{
Console.WriteLine("任务完成后执行的操作");
});
// 等待任务完成
task.Wait();
}
}
在这个示例中,我们创建了一个任务,该任务会等待 1 秒后完成。然后,我们使用 ContinueWith 方法来处理任务完成后的操作。最后,我们等待任务完成。
需要注意的是,ContinueWith 方法可能会导致前一个任务的异常被传递到后续的任务中。如果你不希望这样做,可以使用 Task.Run 方法的重载版本,该版本接受一个 CancellationToken 参数,并在任务被取消时抛出 OperationCanceledException 异常。你可以在后续的任务中使用 try-catch 语句来捕获并处理这个异常。
总之,ContinueWith 方法的用法并不复杂,但需要了解其工作原理和注意事项。通过合理地使用 ContinueWith 方法,你可以编写出更高效、更易于维护的异步代码。