Отчет о прогрессе от фоновой задачи - PullRequest
1 голос
/ 28 октября 2009

У меня есть фоновая задача, которая импортирует файлы в базу данных. Я хочу, чтобы пользователь видел, что происходит в настоящее время (сбор файлов / импорт файлов), какой файл в настоящее время обрабатывается и как далеко продвинулась задача. Как я могу сделать это простым способом? Взаимодействие между Model и Controller настолько близко, что я мог бы почти поместить импортирующий код в файл кода окна и напрямую изменить значение индикатора выполнения и т. Д. Как вы думаете? Как бы вы решили эту проблему?

Ответы [ 2 ]

8 голосов
/ 28 октября 2009

Используйте BackgroundWorker, он идеально подходит для этой задачи. Он может уведомлять пользовательский интерфейс о текущем прогрессе, используя метод ReportProgress, который вызывает событие ProgressChanged в потоке пользовательского интерфейса (что означает, что вам не нужно беспокоиться о вызовах между потоками и Invoke)

0 голосов
/ 29 октября 2009

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

Если вы в конечном итоге отображаете прогресс в процентном отношении, учитывайте различное время загрузки в зависимости от размера файла.

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