2011-07-02 92 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

非常類似的問題:http://stackoverflow.com/questions/6516528 – dtb

+0

@Dark Falcon,我想單獨製作CALLBACK方法。 – Mediator

回答

0

首先,您是否掌握了lambda和匿名代表?

在這個片斷:

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

相關問題