Это одна из точек фонового работника по сути. Используйте ProgressBar
и просто определите, как далеко продвигается процесс, в соответствии с вашим алгоритмом.
(Как уже упоминалось, если они через 10%, отправьте 10
, если они через 50%, отправьте 50
)
Использование BackgroundWorker
bgWrk
Добавить следующее событие:
bgWrk.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(bgWrk_ProgressChanged);
// Note: This method is invoked on the UI thread
void bgWrk_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
// Add progress to whatever UI element needs updating. The below simply uses a progress bar.
prog.Value = e.ProgressPercentage;
}
После каждого важного шага, который, по вашему мнению, заслуживает обновления пользователя, выполните следующие действия:
bgWrk.ReportProgress(intValue);
Пара заметок:
Вы также можете передать Object
в методе ReportProgress()
, чтобы иметь возможность обновить метку строковым объектом и т. Д., Однако индикатор выполнения по-прежнему является универсальным символом «Hold on». я что-то делаю "
Если у вас есть какой-либо неопределенный опрос, и вы используете ProgressBar
, попробуйте использовать его как Indeterminate ProgressBar, или спиннер или тому подобное. WPF имеет встроенное свойство, позволяющее сделать индикатор выполнения неопределенным, что полезно.