Как стать автором
Обновить

Комментарии 10

НЛО прилетело и опубликовало эту надпись здесь
спасибо
перенесите пожалуйста статью в блог (.NET или WPF), чтобы она смогла выйти на главную Хабра
Перенес в блог WPF, поскольку изначально планировал разместить его там — только сейчас хватило кармы.
While items ARE loading
Спасибо, исправил. Исходники правда не стал перезаливать :)
Статья действительно отличная, спасибо
backgroundworker разве для этого не подходит?
Спасибо за статью.
Подходит. Но это для того случая, если требуется выполнить некоторое действие в фоне. Здесь же основной акцент на Binding и то, что не приходится прилагать усилий — ядро WPF сделает все само. А с BackgroundWorker вам придется попыхтеть с реализацией правильной синхронизации. Да и работа с ним в рамках связывания данных не совсем простая — поверьте, приходилось сталкиваться.
Вообще для реализации операций с потоками в UI лучше использовать более новую концепцию — класс Dispatcher. Дизайнеры .NET Framework рекомендуют использовать этот класс вместо BackgroundWorker, который считается устаревшей концепцией .NET Framework 2.0.
Маленькое дополнение — надо было сразу об этом сказать. Dispatcher, на мой взгляд, лучше ложится в схему приложения, использующего паттерн MVVM. Это сугубо из личного опыта — мне гораздо удобнее стало, когда я перешел на использование Dispatcher. Поскольку там вы свободно можете выполнять код в потоке UI Dispatcher. При использовании BackgroundWorker у вас такой возможности нет. Да и информацию о прогрессе вы можете передать только в рамках навазываемого коллбэка private void ProgressChanged(object sender, ProgressChangedEventArgs e), что накладывает определенные ограничения.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории