Fork me on GitHub

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).

Back to Top