private void OnDoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = (BackgroundWorker)sender;
worker.ReportProgress(0);
PiCalculator piCalc = new PiCalculator();
int numIterations = (int)e.Argument;
for (int i = 0; i < 100; i++)
{
piCalc.Run(numIterations / 100);
worker.ReportProgress(i, piCalc.PI);
if (worker.CancellationPending) break;
}
worker.ReportProgress(100, piCalc.PI);
}