在C#中,BeginInvoke
方法用于異步調用委托。這個方法允許你在不阻塞當前線程的情況下執行一個方法。下面是一個簡單的示例,展示了如何使用BeginInvoke
實現異步調用:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 創建一個委托,指向要異步調用的方法
Action myAction = () =>
{
Console.WriteLine("異步調用開始");
Thread.Sleep(3000); // 模擬耗時操作
Console.WriteLine("異步調用結束");
};
// 創建一個委托實例
Action myActionInstance = myAction;
// 使用BeginInvoke方法異步調用委托
IAsyncResult result = myActionInstance.BeginInvoke(null, null);
// 在這里繼續執行其他任務,而不需要等待異步調用完成
Console.WriteLine("異步調用已經開始,主線程繼續執行其他任務");
// 如果需要等待異步調用完成,可以使用EndInvoke方法
myActionInstance.EndInvoke(result);
Console.WriteLine("異步調用已完成");
}
}
在這個示例中,我們創建了一個名為myAction
的委托,它表示一個無參數、無返回值的方法。然后,我們使用BeginInvoke
方法異步調用這個委托。BeginInvoke
方法返回一個IAsyncResult
對象,可以用來跟蹤異步調用的狀態和結果。
注意,在異步調用完成之前,主線程會繼續執行其他任務。如果需要等待異步調用完成,可以使用EndInvoke
方法。