One problem is that you’re sleeping for 30 seconds. Normally you’d call ReportProgress
at various points within your long-running task. So to demonstrate this, you might want to change your code to sleep for 1 second, but 30 times – calling ReportProgress
each time it finishes a sleep.
Another problem is that you’re showing your ProgressForm
from the background thread. You should start it in the UI thread, but hook the background worker’s ProgressChanged
event to it. Then when the background worker reports progress, the progress form will be updated.