C# 中的 ContinueWith
方法用于在任务(Task)完成或失败时执行另一个任务。它的用法并不复杂,但需要理解其工作原理和注意事项。
ContinueWith
方法接受一个 Action
委托,该委托将在前一个任务完成后执行。你可以使用 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
方法,你可以编写出更高效、更易于维护的异步代码。