I am writing a program that steps through a number of testing steps in one of three modes. Mode 1 is simply "run as fast as the processor can go". Mode 2 is a manual "click to advance the step". Mode three is suppossed to be a "step slowly by a predetermined pause". It is this third mode that I am having trouble with. The other two modes work great. The problem is that before the program is temporily paused, a number of labels have to be updated, including the "Step Number" label. After trying things like "Thread.Sleep(500)" and "do nothing" for loops, I find that the program will slow down, but the form labels are not updated between pauses. It looks to me like the thread goes off track for a while then after the pause returns with all of my labels left either not updated or corrupted. Is there a pause routine that will smoothly advance through my test steps? I need about a 1/2 sec pause between steps.