我知道在C#(和VB.Net)中我可以创建一个委托,指向一个方法,然后使用这个委托同步或异步地运行我的方法。我知道怎么做。
有时我使用委托来异步运行方法,有时这些方法有输入参数。要异步运行我的方法,我调用委托BeginInvoke
方法,提供输入参数,然后是“null,null”。
我提供“null,null”作为最后两个参数,尽管Visual Studio的intellisense建议我提供一个名为callback的AsyncCallback
对象,然后是一个名为@object
的第二个对象,如下所示。 / p>
什么是AsyncCallback
以及它是如何使用的,以及intellisense建议的另一个名为@object
的对象的目的是什么?
由于
答案 0 :(得分:7)
AsyncCallback
是一个委托类型,充当回调函数。
如果您将函数作为此参数传递,.Net将在委托异步执行完成后调用您的回调。
第二个参数允许您将状态传递给AsyncCallback,以便您的回调函数可以知道它的来源。
答案 1 :(得分:1)
基本上AsyncCallback用于处理异步操作的结果。并且state用于能够在异步和非异步环境(异步和非异步函数)之间传递对象
一个很好的例子是Using an AsyncCallback Delegate to End an Asynchronous Operation,其中进行异步调用以获取Dns信息(因此未定义的术语操作执行和处理)
希望这有帮助。