My code:

```
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerSupportsCancellation = true;
worker.WorkerReportsProgress = true;
worker.ProgressChanged += new ProgressChangedEventHandler  (worker_ProgressChanged);
worker.DoWork += delegate(object s, DoWorkEventArgs args)
{

     ResourceConsumingFunction();
};
worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
        Finished(true);
};
worker.RunWorkerAsync();

```

I wish to report progress quite frequently but have no idea how to do this. I cant modify resourceConsumingFunction(); 
Any ideas?