2011-08-05 41 views
2

當我從第三方庫調用異步函數時,我發現函數需要傳遞迴調。如何在C#中傳遞迴調?

功能是

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

有人可以告訴我,我怎麼能在Silverlight通過回調此功能。

感謝

+1

您的帖子完全不清楚,無效的無效簽名和缺乏上下文。請閱讀http://tinyurl.com/so-hints –

回答

3

您使用委託來接受結果的方法。比如,你可以使用lambda表達式創建:

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

您也可以聲明一個名爲方法:

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

然後,只需在調用,它會自動爲其創建一個委託使用其名稱它:

Library.getResult(options, HandleResult); 
2

Action<library.libresult<dataCollection>>是需要library.libresult<dataCollection>的方法,所以下面應該工作:

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

這裏,result將是library.libresult<dataCollection>它給你。據推測(但不是確定)這是異步的,所以你可能需要考慮線程問題等。

+0

謝謝它的作品 – dev