Требование :
- Клиент Silverlight, который загружает файл с компьютера пользователя.
- Для каждой строки в файле необходимо выполнить GET для URL-адреса и утвердить или отклонить строку на основе возвращенного сообщения проверки JSON.
- Когда все строки завершены, покажите пользователю сводку количества пройденных строк и неудачных.
Я бы предпочел сделать это "синхронно" в BackgroundWorker, ноэто нарушает асинхронное мышление SL.
Мой код в настоящее время передает результат из OpenFileDialog в BackgroundWorker, который считывает файл в список строго типизированных объектов (проверка на стороне клиента).Я создаю WebClient и вызываю DownloadStringAsync несколько раз, пока я зацикливаюсь на строках.Чаще всего фоновый работник завершает и запускает завершенный метод события задолго до завершения работы WebClient.Поток пользовательского интерфейса может работать как асинхронно, как ему хочется, но мне нужно либо дождаться завершения потока фонового работника, пока он фактически не завершит получение данных, либо иметь дополнительный обработчик событий, который работает, когда все (сотни) строк были проверены.
Какова наилучшая практика при обработке последнего завершенного события из общего числа событий X?Любое использование здесь событий автоматического сброса, которые могут помочь?