溫馨提示×

C# Task類的常用方法有哪些

c#
小樊
159
2024-09-04 13:18:56
欄目: 編程語言

C# 中的 Task 類是 System.Threading.Tasks 命名空間的一部分,用于表示異步操作。以下是一些常用的 Task 類方法:

  1. Task.Run(Action action): 此靜態方法用于在后臺運行一個新任務,并返回與該任務關聯的 Task 實例。這對于在不阻塞當前線程的情況下啟動后臺操作非常有用。
Task.Run(() =>
{
    // 你的代碼
});
  1. Task.Delay(int millisecondsDelay): 此靜態方法創建一個在指定延遲之后完成的 Task。這對于定時操作或模擬長時間運行的任務非常有用。
await Task.Delay(1000); // 等待1秒
  1. Task.WhenAll(Task[] tasks): 此靜態方法接收一系列任務,并返回一個新的 Task,當所有輸入任務完成時,該任務才會完成。這對于同時等待多個任務完成非常有用。
var task1 = Task.Run(() => { /* 任務1 */ });
var task2 = Task.Run(() => { /* 任務2 */ });

await Task.WhenAll(task1, task2);
  1. Task.WhenAny(Task[] tasks): 此靜態方法接收一系列任務,并返回一個新的 Task<Task>,當其中任何一個輸入任務完成時,該任務就會完成。這對于等待多個任務中的任意一個完成非常有用。
var task1 = Task.Run(() => { /* 任務1 */ });
var task2 = Task.Run(() => { /* 任務2 */ });

var completedTask = await Task.WhenAny(task1, task2);
  1. Task.Wait(): 此方法使當前線程等待任務完成。這將阻塞當前線程,直到任務完成。通常,建議使用 await 關鍵字而不是 Wait(),因為它可以更好地處理異步上下文和錯誤處理。
var task = Task.Run(() => { /* 你的代碼 */ });
task.Wait();
  1. Task.ContinueWith(Action continuationAction): 此方法用于在當前任務完成后執行另一個操作。這對于鏈式任務執行非常有用。
var task = Task.Run(() => { /* 任務1 */ });
task.ContinueWith((t) => { /* 任務2,在任務1完成后執行 */ });
  1. Task.Start(): 此方法用于手動啟動先前創建的尚未啟動的任務。通常,使用 Task.Run() 創建任務時,無需調用此方法,因為任務會自動啟動。
var task = new Task(() => { /* 你的代碼 */ });
task.Start();

請注意,在使用 Task 類時,應始終考慮處理異常和取消操作。這可以通過使用 try-catch 語句和 CancellationToken 來實現。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女