Page 149 - CSharp/C#
P. 149
// Work to be done here
// ...
// To get a reference to the current Backgroundworker:
BackgroundWorker worker = sender as BackgroundWorker;
// The reference to the BackgroundWorker is often used to report progress
worker.ReportProgress(...);
}
/*This is the method that will be run once the BackgroundWorker has completed its tasks */
bgWorker.RunWorkerCompleted += bgWorker_CompletedWork;
/*This is how the RunWorkerCompletedEvent event method signature looks like:*/
private void bgWorker_CompletedWork(object sender, RunWorkerCompletedEventArgs e)
{
// Things to be done after the backgroundworker has finished
}
/* When you wish to have something occur when a change in progress
occurs, (like the completion of a specific task) the "ProgressChanged"
event handler is used. Note that ProgressChanged events may be invoked
by calls to bgWorker.ReportProgress(...) only if bgWorker.WorkerReportsProgress
is set to true. */
bgWorker.ProgressChanged += bgWorker_ProgressChanged;
/*This is how the ProgressChanged event method signature looks like:*/
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// Things to be done when a progress change has been reported
/* The ProgressChangedEventArgs gives access to a percentage,
allowing for easy reporting of how far along a process is*/
int progress = e.ProgressPercentage;
}
Assigning Properties to a BackgroundWorker
This allows the BackgroundWorker to be cancelled in between tasks
bgWorker.WorkerSupportsCancellation = true;
This allows the worker to report progress between completion of tasks...
bgWorker.WorkerReportsProgress = true;
//this must also be used in conjunction with the ProgressChanged event
Creating a new BackgroundWorker instance
A BackgroundWorker is commonly used to perform tasks, sometimes time consuming, without
blocking the UI thread.
// BackgroundWorker is part of the ComponentModel namespace.
using System.ComponentModel;
https://riptutorial.com/ 95

