在C#中,回調是一種常見的異步編程模式。回調方法是一個作為參數傳遞給另一個方法的方法。當調用外部方法時,這個參數方法(回調方法)將在適當的時機被調用。這使得您可以在異步操作完成時執行特定的代碼。
以下是一個簡單的C#回調示例:
using System;
// 定義一個回調方法
public delegate void MyCallback(string message);
// 一個使用回調方法的類
public class MyClass
{
public void DoWork(MyCallback callback)
{
// 模擬異步操作
System.Threading.Thread.Sleep(2000);
// 異步操作完成后,調用回調方法
callback("工作完成!");
}
}
public class Program
{
public static void Main()
{
MyClass myClass = new MyClass();
// 將回調方法作為參數傳遞給DoWork方法
myClass.DoWork(new MyCallback(OnWorkCompleted));
// 主線程繼續執行其他任務...
Console.WriteLine("等待回調...");
}
// 回調方法實現
public static void OnWorkCompleted(string message)
{
Console.WriteLine(message);
}
}
在這個示例中,我們定義了一個名為MyCallback
的委托,它表示回調方法。MyClass
類中的DoWork
方法接受一個MyCallback
類型的參數。在DoWork
方法中,我們模擬了一個異步操作(使用Thread.Sleep
),然后在操作完成后調用回調方法。
在Main
方法中,我們創建了一個MyClass
實例,并將OnWorkCompleted
方法作為回調方法傳遞給DoWork
方法。當DoWork
方法完成異步操作并調用回調方法時,OnWorkCompleted
方法將被執行,輸出"工作完成!"。