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
方法,你可以編寫出更高效、更易于維護的異步代碼。