Как Silverlight Background Worker обновляет поток пользовательского интерфейса без проблем? - PullRequest
2 голосов
/ 20 июля 2010

Я использую фоновый рабочий поток в приложении Silverlight 4. В обработчике событий ProgresssChanged я могу вызывать интерфейс Silverlight, но как это работает? Разве фоновый рабочий поток, запускающий событие ProgressChanged, отличается от потока пользовательского интерфейса Silverlight? Если так, то я думал, что обновление потока пользовательского интерфейса из другого потока вызывает исключения.

Scott

1 Ответ

3 голосов
/ 20 июля 2010

Вы правы, что обновление потока пользовательского интерфейса из другого потока - нет-нет. У BackgroundWorker есть специальные умения, чтобы убедиться, что, хотя работа выполняется в фоновом потоке, события ProgressChanged и RunWorkerCompleted генерируются в потоке пользовательского интерфейса.

Я полагаю, что для этого используется SynchronizationContext .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...