Как мне реализовать индикатор выполнения и фона для вызовов базы данных в C #?
У меня есть несколько методов, которые работают с большими объемами данных. Это относительно длительные операции, поэтому я хочу добавить индикатор выполнения, чтобы пользователь знал, что что-то на самом деле происходит.
Я подумал об использовании индикатора выполнения или метки строки состояния, но поскольку существует один поток пользовательского интерфейса, поток, в котором выполняются методы обработки базы данных, элементы управления пользовательского интерфейса не обновляются, что делает индикатор выполнения или метку строки состояния бесполезными для меня.
Я уже видел несколько примеров, но они имеют дело с циклами for, например:
for(int i = 0; i < count; i++)
{
System.Threading.Thread.Sleep(70);
// ... do analysis ...
bgWorker.ReportProgress((100 * i) / count);
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = Math.Min(e.ProgressPercentage, 100);
}
Я ищу лучшие примеры.