在我的WPF客戶端中,我有一個循環調用WCF服務來更新某些記錄。當循環完成時,我會顯示一條消息「更新完成」。在循環中異步調用WCF服務
我正在改變我的WCF調用到異步調用現在。
ServiceClient client = new ServiceClient();
client.UpdateRecordsCompleted +=new System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(client_UpdateRecordsCompleted);
foreach (MyItem item in someCollection)
{
client.UpdateRecordsAsync(item);
}
MessageBox.Show("Update complete");
我不需要在每個操作的競爭事件中做任何事情。我只需要在末尾之一顯示一條消息。
任何想法?
編輯:我可能會將此移植到Silverlight,所以這就是爲什麼我需要異步調用該服務。我不認爲我可以使用背景工作者。
只是好奇,爲什麼不使用標準的for循環,當你在你的最後一個項目,設置像isLastItem = true的布爾,並在事件處理程序,檢查isLastItem ,並顯示消息?一旦顯示了消息,您可以將該變量重置爲false,以便隨後的調用工作 – kd7 2009-02-11 17:08:30
即使您只是自己編寫BackgroundWorker,也可以使用BackgroundWorker ... – MichaelGG 2009-02-11 20:42:03