DoEvents gibt Windows Zeit, andere Prozesse abzuarbeiten.
Nehmen wir an du schreibst ein Programm, dass nach einer Datei auf der Festplatte sucht. Das kann recht lange dauern wenn die Festplatte groß ist.
Solltest du nun versuchen dein Programm-Fenster auf dem Desktop zu verschieben, so wirst du merken, dass das Fenster plötzlich weiß wird und "Keine Rückmeldung" im Taskmanager angezeigt wird. Das liegt daran, dass dein Programm hyper-aktiv ist und dem Code deiner Suchprozedur höchste Priorität gibt.
Nachrichten, die das Windows deinem Programm sendet (nämlich dass der User das Fenster verschieben möchte) werden nicht verarbeitet.
Solltest du nun in deiner Suchprozedur von Zeit zu Zeit ein "DoEvents" eingebaut haben, dann bekommt Windows Zeit um andere Prozesse zu erledigen.
Somit würde auch keine "Keine Rückmeldung"-Nachricht im Taskmanager erscheinen.
Das heißt:
Vorteil von DoEvents: der User denkt nicht fälschlicherweise, dein Programm sei abgestürzt. Zudem kann der User auch noch mit anderen Programmen in gewohnter Weise arbeiten.
Nachteil: Deine Suchprozedur dauert länger, da ihr nicht die volle CPU-Auslastung zugeteilt wird.