Dispatcher
- это просто механизм для запуска небольшого количества кода в потоке пользовательского интерфейса в более позднее время. Приоритет, который вы передаете элементам управления , когда будет выполняться, а не какой-либо приоритет потока. В этом случае содержимое вашего делегата запускается в потоке пользовательского интерфейса. Использование BackgroundWorker
, как упомянул Аарон, безусловно, поможет здесь.
Также я мог бы указать, что обычно индикатор выполнения показывает, насколько близко задание к завершению. Если вы не знаете, сколько времени потребуется, или не можете измерить прогресс, вы можете использовать индикатор неопределенности. Обновляйте значение, только если у вас есть какая-либо значимая информация. (хотя вы, возможно, только что предоставили это для демонстрационных целей)