The DoEvent statement should be used only to give other portions of your program to be reactive to the end user’s actions. Instead, many VB developers use it to force a repaint of a form or some of its controls. This means adding a lot of overhead to your code, which you can avoid by using the Form’s Refresh method or (even better), the Refresh method of the only control that needs to be updated:
Dim i As IntegerFor i = 1 To 10000 ' do something here ' ' Update a label with iteration count lblStatus.Caption = "Iteration #" & i ' refresh *only* the label lblStatus.RefreshNext