'How can I use BackgroundWorker without using Thread.sleep in WPF
I have got progress bar from 0 to 100 000. I must display on my progressbar how quick is my loop in real, without Thread.sleep(1) beacuse it isn't real time, it is slower when i am using this. What shoud I do to show real time of my loop lifetime?
void worker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 100000; i++)
{
(sender as BackgroundWorker).ReportProgress(i);
Thread.Sleep(1);
}
}
void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
metroProgressBar.Value = e.ProgressPercentage;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += worker_DoWork;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerAsync();
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
