Я пишу приложение, которое читает из нескольких каналов, обслуживаемых веб-сервером, и после обработки ответа выгружает результаты в DataGridView. Есть несколько сотен источников, каждый из которых отвечает примерно 200 тысячами пунктов. Затем они фильтруются на основе некоторых правил регулярных выражений, а те, которые проходят (около 30%), помещаются в DataGridView.
Мне нужен механизм для этого, но со следующими ограничениями:
- Пользовательский интерфейс должен всегда реагировать.
- Необходимо получить 5 ресурсов в любой момент времени (т.е. параллельно).
- Обрабатывать результаты с помощью регулярных выражений параллельно.
- Время между получением данных с сервера и их отображением в сетке должно быть минимальным.
- Предпочитает избегать Application.DoEvents ().
Я использую WebClient.DownloadStringAsync
, чтобы получить данные с сервера. Помимо этого, я попробовал несколько решений, но ни одно из них не работает хорошо.