//arbitrary example of processing that takes some period of time static void doWork() { int i = 0; while (i < 100000) { progressForm.ChangeValue(i); Thread.Sleep(1); i++; } return; }