Задать вопрос

Очередной вопрос про фоновое выполнение функций?

Привет.

Я совсем не специалист в шарпе, более того, шарп — не основной мой язык (использую его только для программ, строго требующих GUI) и никак не пойму, как же все-таки делать правильно.


Что требуется: выполнение любых действий не в основном потоке, т.е. полностью исключить подвисание интерфейса.


Программа работает исключительно с сетью, скорости интернета на клиентах разные, многие жалуются.

При этом надо постоянно взаимодействовать с полученными данными и делать это последовательно, отображать изменения в GUI и т.д.


Читал много гугла, везде рекомендуют создавать простыни из callback'ов, писать огромные делегаты на все случаи, использовать сложные конструкции с инвокерами, а в текущем коде, который и без того не очень опрятен, все переделывать очень проблематично.


Не могли бы вы поделиться примерами кода, в котором какие-нибудь типичные синхронные конструкции (например получение данных, парсинг, отправка HTTP-запроса, обновление интерфейса основного окна, опять получение и дальнейший парсинг) сделаны в фоне, а не просто разбиты на функции? Или хотя бы просто поясните, как сделать это с минимальными затратами и максимальной понятностью (т.е. чтобы чтение алгоритма не прерывала простыня взаимодействия с основной формой). Спасибо заранее.
  • Вопрос задан
  • 4474 просмотра
Подписаться 5 Оценить 1 комментарий
Ответ пользователя brainx64 К ответам на вопрос (4)
@brainx64
Я во времена .NET 2.0 для фоновых задач использовал System.ComponentModel.BackgroundWorker
Ответ написан
Комментировать