Show Progress
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | DoWorkEventHandler worker = delegate ( object sender, DoWorkEventArgs e) { AsyncWorker genericWorker = (AsyncWorker)sender; genericWorker.WorkerReportsProgress = true ; for ( int i = 0; i <= 100; i += 10) { genericWorker.ReportProgress(i, "current step = " + i); } }; ProgressChangedEventHandler progress = (sender, e) => { // update UI with this data: int percentage = e.ProgressPercentage; object step = e.UserState; }; AsyncWorker asyncWorker = new AsyncWorker(worker, progress, null ); asyncWorker.RunWorkerAsync(); |
The progress callback will be called on the thread on which the async worker was started if this thread supports synchronization (UI thread do support synchronization).