Как показать флаг IsBusy, когда у меня есть коллекция интенсивных задач пользовательского интерфейса, каждая из которых находится в фоновом потоке? - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть DataGrid с столбцом данных, помеченным RichTExtBox. Если я свяжу 10 объектов с данными RTF, то получится 10 RichTextBoxes.

Для 1 страницы DINA4 RTF RTBox требуется 200 мсек для выполнения textrange.Load (data).

Теперь у меня зависает пользовательский интерфейс 2000 мс, когда я переключаю представления календаря. Это хорошо, если бы я мог показать

IsBusy Adorner, но у меня есть коллекция RTBox, как я могу это сделать?

Я мог бы запустить каждую задачу пользовательского интерфейса в фоновом потоке и использовать диспетчер для обновления пользовательского интерфейса. Но

еще тогда мне нужен загрузчик / индикатор выполнения. Все данные приходят очень быстро за 100-200 мсек

из моей базы данных в асинхронном режиме. Но как бы вы решили эту особую проблему Loading Adorner?

1 Ответ

0 голосов
/ 22 февраля 2011

Почему вы не можете запустить всю фоновую работу в одном BackgroundWorker?Вы можете установить загрузчик / индикатор выполнения сразу после запуска BackgroundWorker и удалить загрузчик / индикатор выполнения в методе RunWorkerCompleted.Метод ProgressChanged можно использовать для обновления обновлений загрузки / индикатора выполнения.

...