0
我正在開發一個使用.Net Web服務(由我開發)的windows phone應用程序。當我調用Web服務方法時,請異步執行,不要阻止UI。例如,下面是一個代碼示例,用於向服務器詢問列表o到達航班的列表。取消windows phone中的異步web服務調用
service.MobileWSSoapClient Proxy { get; set; }
Proxy = new service.MobileWSSoapClient();
Proxy.GetArrivalsCompleted += proxy_GetArrivalsCompleted;
Proxy.GetArrivalsAsync(searchFilter);
這樣,我給的自由,用戶再次調用相同的方法或另一個(例如:刷新到來列表或搜索特定到達)。如果用戶產生新的服務呼叫,應用程序應該「取消」第一個電話,並只顯示最後一次電話的結果。我認爲這在技術上是不可能的,取消已經到服務器的Web服務調用,我們應該等待服務器響應,然後忽略它。瞭解到這一點,將標記以某種方式標記爲過時會很有幫助。作爲該過時呼叫的響應,接收錯誤就足夠了。我會寫一個我想象/需要的僞代碼。
void proxy_GetArrivalsCompleted(object sender, service.GetArrivalsCompletedEventArgs e){
if (e.Error == null){
// DO WORK
}
else
{
if(e.Error == Server Exception || e.Error == Connection Exception){
MessageBox.Show("error");
}
else if (e.Error == obsolete call){
// DO NOTHING
}
}
在此先感謝。
當我從BackgroundWorker調用Web服務器時,它只是調用它並結束它的工作。意味着它不會等到服務器響應。 – nachoifa 2013-03-18 21:35:09