3

我知道在 C#(和 VB.Net)中,我可以创建一个委托,将其指向一个方法,然后使用该委托同步或异步运行我的方法。我知道该怎么做。

有时我使用委托来异步运行一个方法,有时这些方法有输入参数。为了异步运行我的方法,我调用委托BeginInvoke方法,提供我的输入参数,然后是“null,null”。

我提供“null, null”作为最后两个参数,尽管 Visual Studio 的智能感知建议我改为提供一个AsyncCallback名为 callback 的对象,后跟一个简单命名的对象@object,如下所示。

图片

什么是 anAsyncCallback以及它是如何使用的,@object智能感知建议的另一个名为的对象的目的是什么?

谢谢

4

2 回答 2

7

AsyncCallback是充当回调函数的委托类型。

如果您将函数作为此参数传递,.Net 将在委托完成异步执行后调用您的回调。

第二个参数允许您将状态传递给 AsyncCallback,以便您的回调函数可以知道它来自什么。

于 2012-04-20T14:09:47.723 回答
1

基本上 AsyncCallback 用于处理异步操作的结果。并且状态用于能够在异步和非异步环境之间传递对象(异步和非异步函数)

一个很好的例子是Using an AsyncCallback Delegate to End an Asynchronous Operation,其中进行异步调用以获取 Dns 信息(因此未定义术语操作执行和处理)

希望这可以帮助。

于 2012-04-20T14:12:39.420 回答