Выполнение нескольких асинхронных вызовов в цикле - PullRequest
1 голос
/ 17 ноября 2011

Я загружаю (с помощью перетаскивания) несколько документов в приложении Silverlight Light 4 RIA.Асинхронный вызов AddNewXDocument (в приведенном ниже коде) прекрасно работает, когда у меня есть только одна запись в очереди, т.е. _uploadedDocuments.Count = 1.Однако, если я отбрасываю несколько файлов, второй метод AddNewXDocument вызывается до завершения события Submit для первого файла.Я получаю сообщение об ошибке «Операция SubmitChanges уже выполняется для этого DomainContext».

Как я могу использовать IAsyncResult, чтобы отложить вызов метода AddNewXDocument для файла 2 до тех пор, пока не завершится событие Submit для файла 1.Могу ли я также включить визуальный индикатор в цикл, чтобы сообщить пользователю, что идет процесс загрузки ??


 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);
            }
...