private void DoWork(object sender, DoWorkEventArgs args)
{
var worker = sender as System.ComponentModel.BackgroundWorker;
var sw = new Stopwatch();
sw.Start();
for (var i = 0; i <= 100000; i++)
{
if (i % 500 == 0)
{
// just so we can see it more easily...
Thread.Sleep(5);
worker.ReportProgress(i / 100000, i);
}
}
sw.Stop();
args.Result = sw.ElapsedMilliseconds;
}