[英]Is there an effective way to use System.Threading.Tasks with WCF service proxies?
在閱讀了最近關於Task調度程序的MSDN雜志文章后,我希望(並且實際上非常興奮)使用它將有利於我使用WCF生成的代理。
我希望得到以下一些好處:
IsCompleted
,讓Task類從我的UI中抽象出操作的內部。 但是 - 我似乎沒有獲得任何這些好處。
Task.Factory.FromAsync<>
的唯一重載是如下所示。 這立即開始執行webservice操作(如Fiddler中所示)並且不允許我稍后啟動調用。 INotifyPropertyChanged
所以我無法將其綁定到UI。 Sooo ....我只是浪費時間試圖讓WCF生成的代理與任務一起工作 - 或者我錯過了什么。
// WCF client
var client = new ShoppingCartClient();
// create task
var t = Task.Factory.FromAsync<GetOrderDetailsMsgOut>(
client.BeginGetOrderDetails(new GetOrderDetailsMsgIn()
{
OrderId = 12345
}, null, null),
client.EndGetOrderDetails);
t.ContinueWith(x =>
{
var order = x.Result.Order;
// do something with order
});
作為微軟計划下一版C#的新Async功能的一部分,他們在這里發布了一個CTP,它與VS 2010 SP1兼容。
前段時間,我寫了一篇關於與CTP捆綁在一起的一個樣本的小博客文章,內容涉及TaskWsdlImportExtension 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.