在循环中进行多个异步调用

时间:2011-11-17 17:28:29

标签: silverlight-4.0 asynchronous ria

我在SilverLight 4 RIA应用程序中加载(通过拖放)多个文档。当我在队列中只有一条记录时,AddNewXDocument asyn调用(在下面的代码中)很有用 - 即_uploadedDocuments.Count = 1。但是,如果删除多个文件,则在第一个文件的Submit事件完成之前调用第二个AddNewXDocument方法。我得到“这个DomainContext上的一个SubmitChanges操作已经在进行中”错误。

如何在文件1的Submit事件完成之前,使用IAsyncResult延迟调用文件2的AddNewXDocument方法。我是否还可以在循环中绑定一个可视指示器来通知用户正在进行加载过程?


 foreach (var updDoc in _uploadedDocuments)
            {
                string docTitle = GetUniqueFileName(updDoc.Title.Replace(updDoc.FileExtension, ""), updDoc.FileExtension.ToLower()); 

                var doc = new XDocument();
                doc.Description = docTitle;          
                _myViewModel.AddNewXDocument(doc);
            }

0 个答案:

没有答案