3

C#(およびVB.Net)では、デリゲートを作成し、これをメソッドにポイントしてから、このデリゲートを使用してメソッドを同期または非同期で実行できることを知っています。私はこれを行う方法を知っています。

デリゲートを使用してメソッドを非同期で実行する場合もあれば、これらのメソッドに入力パラメーターがある場合もあります。メソッドを非同期で実行するには、delegatesBeginInvokeメソッドを呼び出し、入力パラメーターを指定してから、「null、null」を指定します。

AsyncCallbackVisual Studioのインテリセンスは、代わりに、 callbackという名前のオブジェクトに続いて、以下に示すように単純な名前の2番目のオブジェクトを提供することを提案していますが、最後の2つのパラメーターとして「null、null」を指定@objectします。

写真

とは何で、どのように使用されますか。また、インテリセンスによって提案されたAsyncCallback名前の他のオブジェクトの目的は何ですか。@object

ありがとう

4

2 に答える 2

7

AsyncCallbackコールバック関数として機能するデリゲート型です。

このパラメーターとして関数を渡すと、デリゲートが非同期で実行を終了した後、.Netはコールバックを呼び出します。

2番目のパラメーターを使用すると、状態をAsyncCallbackに渡すことができるため、コールバック関数はそれが何から来ているのかを知ることができます。

于 2012-04-20T14:09:47.723 に答える
1

基本的に、AsyncCallbackは、非同期操作の結果を処理するために使用されます。また、状態は、非同期環境と非非同期環境(非同期関数と非非同期関数)の間でオブジェクトを渡すことができるようにするために使用されます

良い例は、AsyncCallbackデリゲートを使用して非同期操作を終了することです。ここでは、非同期呼び出しが行われてDNS情報を取得します(したがって、未定義の用語操作の実行と処理)

お役に立てれば。

于 2012-04-20T14:12:39.420 に答える