2011-07-02 2 views
-3

可能性の重複コールバックで非同期メソッドに渡されたパラメータを取得する方法:
How to get the parameters passed to the asynchronous method in the callback(ないラムダ)

私はメソッドのコールバックに、このラムダを変換する必要がある

var sendRegistrationDelegate = 
    new AsyncSendRegistrationDelegate(AsyncSendRegistrationMethod); 

sendRegistrationDelegate.BeginInvoke(registrationToUser, label, ar => 
{ 
    var responceFromServer = sendRegistrationDelegate.EndInvoke(ar); 

    if (responceFromServer.IsError) 
    { 
     SetText(label, registrationToUser.Name + @" " + 
      responceFromServer.ErrorMessage); 
    } 
    else 
    { 
     SetText(label, registrationToUser.Name + @" " + 
      responceFromServer.Data); 
    } 
}, null); 
+5

なぜ変更する必要がありますか? –

+0

非常によく似た質問:@Starkoverflow.com/questions/6516528 – dtb

+0

@ダークファルコン、私は個別にコールバックメソッドを作りたい。 – Mediator

答えて

0

まず、ラムダと匿名の代理人を把握していますか?このスニペットで

sendRegistrationDelegate.BeginInvoke(registrationToUser, label, ar => 
    // start of method 
    { 
     var responceFromServer = sendRegistrationDelegate.EndInvoke(ar); 

     if (responceFromServer.IsError) 
     { 
      SetText(label, registrationToUser.Name + @" " + 
       responceFromServer.ErrorMessage); 
     } 
     else 
     { 
      SetText(label, registrationToUser.Name + @" " + 
       responceFromServer.Data); 
     } 
    } 
    // end of method 
    , null); 

そうのように...開口部と{ }を閉じるには、先頭をマークし、方法の終了:

void AsyncCallbackMethod(IAsyncResult ar) 
{ 
    // method body 
} 

あなたのBeginInvokeメソッドメソッドは次のようになります

sendRegistrationDelegate.BeginInvoke(registrationToUser, label, new AsyncCallback(AsyncCallbackMethod), null); 
+0

ラベル - 利用できません。 – Mediator