在 C# 中,将数据传递给回调方法(通过 BeginInvoke)是一种异步编程方法。在这种方法中,您可以将数据作为参数传递给回调方法,并在回调方法中处理数据。以下是一个简单的示例:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
// 创建一个委托
Func<int, int, int> add = (x, y) => x + y;
// 创建一个 AsyncCallback 委托
AsyncCallback callback = ar =>
{
// 结束异步操作
int result = add.EndInvoke(ar);
// 处理结果
Console.WriteLine($"Result: {result}");
};
// 开始异步操作
add.BeginInvoke(1, 2, callback, null);
// 防止程序提前退出
Thread.Sleep(1000);
}
}
在这个示例中,我们创建了一个名为 add
的委托,它接受两个整数参数并返回它们的和。然后,我们创建了一个名为 callback
的 AsyncCallback
委托,它将在异步操作完成时被调用。在 callback
委托中,我们调用 add.EndInvoke()
方法来获取异步操作的结果,并在控制台中输出结果。最后,我们调用 add.BeginInvoke()
方法来开始异步操作,并传递 callback
委托作为回调方法。
需要注意的是,在异步操作完成之前,主线程不会被阻塞,因此我们需要在示例的末尾添加一个 Thread.Sleep()
方法来防止程序提前退出。
领取专属 10元无门槛券
手把手带您无忧上云