I have a program that takes 10-20 seconds to start. I need to show a window with a progress bar when the program starts up. I know BackgroundWorker\'s are the correct way to do
It really is very easy to use backgroundworker.
public partial class Window1 : Window
{
BackgroundWorker worker = new BackgroundWorker();
public Window1()
{
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.ReportsProgress = true;
worker.ProgressChanged += new ProgressChangedEventHandler(update_progress);
}
void worker_DoWork(object sender, DoWorkEventArgs e){
DoSomeLongTask();
//call worker.ReportProgress to update bar
}
void update_progress(object sender, ProgressChangedEventArgs e)
{
myscrollbar.Value = e.Value;
}
}
The keything to keep in mind is to never touch gui stuff from DoWork method. That has to through ProgressChanged/ReportProgress