在C#中,異步方法通常使用async
和await
關鍵字來處理。這些關鍵字允許你在不阻塞主線程的情況下執行長時間運行的操作。當你在異步方法中調用另一個異步方法時,它會返回一個Task
或ValueTask
對象,你可以使用await
關鍵字等待這個操作完成。
以下是一個簡單的示例,展示了如何在C#中使用異步方法和回調:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 調用異步方法并等待完成
await PerformAsyncOperation();
}
static async Task PerformAsyncOperation()
{
// 使用Task.Run模擬異步操作
var result = await Task.Run(() => LongRunningOperation());
// 處理回調結果
Console.WriteLine($"異步操作完成,結果是: {result}");
}
static int LongRunningOperation()
{
// 模擬長時間運行的操作
Thread.Sleep(3000);
return 42;
}
}
在這個示例中,PerformAsyncOperation
方法是一個異步方法,它使用await Task.Run
來執行LongRunningOperation
方法。LongRunningOperation
方法模擬了一個長時間運行的操作,它使用Thread.Sleep
來暫停執行3秒鐘。當LongRunningOperation
方法完成時,它返回一個整數值42。
在PerformAsyncOperation
方法中,我們使用await
關鍵字等待LongRunningOperation
方法的完成,并將結果存儲在result
變量中。然后,我們打印出異步操作的結果。
請注意,這個示例使用了Task.Run
來模擬異步操作。在實際應用中,你可能需要根據具體需求使用不同的異步方法,例如從文件或數據庫讀取數據、調用Web API等。