2012-04-20 4 views
3

私はC#(とVB.Net)でデリゲートを作成し、メソッドでこれを指し示してからこのデリゲート私のメソッドを同期的または非同期的に実行します。私はこれを行う方法を知っています。.NETのデリゲートに関して `AsyncCallback`と` @ object`の目的は何ですか?

私は、デリゲートを使用してメソッドを非同期で実行することがあります。これらのメソッドには入力パラメータがあることがあります。私のメソッドを非同期で実行するには、デリゲートをBeginInvokeメソッドと呼び、入力パラメータを指定し、その後にnull、nullを指定します。

最後の2つのパラメータとして「null、null」を指定していますが、Visual Studioのインテリセンスでは、代わりにAsyncCallbackオブジェクトにcallbackという名前を付け、次に示すように2番目のオブジェクト(@object)を指定します。

Picture

AsyncCallback何ですか、それはどのように使われるか、およびその他のオブジェクトの名前@objectインテリセンスによって提案の目的は何ですか?

おかげ

+0

[AsyncCallbackとは何ですか?](http://stackoverflow.com/questions/1047662/what-is-asynccallback) – phoog

+0

@phoog私はあなたの意見を見ますが、私は目的の説明を見つけることができません私の質問の一部である '@ object'という名前の2番目のオブジェクトの名前です。 – JMK

+0

この質問に対して受け入れられた答えでは、「さらに、コールの状態として必要なオブジェクトを指定しています。この例では、EndReadを呼び出してストリーム。" – phoog

答えて

7

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

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

2番目のパラメータを使用すると、コールバック関数が状態を知ることができるようにAsyncCallbackに状態を渡すことができます。

1

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

良い例はUsing an AsyncCallback Delegate to End an Asynchronous Operationです.DNS情報を取得するために非同期呼び出しが行われます(定義されていない用語操作ecxecutionとハンドリング)

これは役立ちます。

関連する問題