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

相关问题