如何在c#中传递Callback

本文关键字:Callback | 更新日期: 2023-09-27 18:04:29

当我从第三方库调用异步函数时,我发现该函数需要传递回调。

函数是

Library.getResult(object options, Action<library.libresult<dataCollection>>  callback

谁能告诉我如何在silverlight中传递回调函数

谢谢

如何在c#中传递Callback

为接受结果的方法使用委托。例如,您可以使用lambda表达式来创建:

Library.getResult(options, result => {
  // code here runs when the result arrives
});

你也可以声明一个命名方法:

private void HandleResult(library.libresult<dataCollection> result) {
  //...
}

然后在调用中使用它的名称,这将自动为它创建一个委托:

Library.getResult(options, HandleResult);

一个Action<library.libresult<dataCollection>>是一个接受一个library.libresult<dataCollection>的方法,所以下面应该工作:

Library.getResult(options, result => {
     // do something with result
});

这里,result将是它返回给你的library.libresult<dataCollection>。假定(但不确定)这是异步的,因此您可能需要考虑线程问题等。