Allerdings reagiert deine Anwendung während der Animation dann auch nicht mehr auf Benutzereingaben.
Das ist allerdings so, in vielen Fällen aber auch erwünscht und meistens kein Problem, solange die Animationszeiten entsprechend kurz sind.
Nehmen wir nur mal den Fall, wo die Animation in einem ButtonClick-Event ausgeführt wird. Wenn dann im
Application.ProcessMessages der gleiche ButtonClick nochmal ausgelöst wird, hat man plötzlich zwei Animationsschleifen gleichzeitig laufen.
Man kann das mit etwas Geschick recht einfach nachvollziehen: Ein Form mit zwei Buttons, bei dem der eine Button wie im obigen Beispiel animiert wird, wenn am auf den anderen klickt. Jetzt mal das Programm laufen lassen und einen schnellen Doppelklick auf den Button machen. Bei
Application.ProcessMessages ergibt sich ein anderes Verhalten als bei
Control.Update. Im ersten Fall steht der Button nach einem kurzen hin und her an der Stelle, an der er nach einem einfachen Klick stehen würde. Verwendet man
Control.Update werden die Animationen nacheinander durchgeführt und der Button steht am Ende da, wo er auch nach zwei Klicks stehen sollte. Für
Application.ProcessMessages müsste man nun den Event gegen sich selbst verriegeln damit das Gewusel aufhört, aber selbst dann ist das Verhalten noch anders als bei
Control.Update.