Ho notato girando per un sito a dir poco fantastico chiamato http://www.planet-source-code.com/, uno screensaver 3D, in cui per far funzionare il classico "Render" lo metteva in un Do-Loop, e prima del "loop" c'era la riga "Application.DoEvents", quella per far completare tutti gli altri eventi in corso...
In effetti facendo girare il programma non si bloccava, anche se c'era il loop costantemente in corso, così mi è venuta un'idea: l'ho messo in un semplicissimo programma, nel quale ho messo un bottone con il testo "0", e ho aggiunto queste righe di codice nell'evento Click:

        Do
            Button1.Text = Button1.Text + 1
            Application.DoEvents()
        Loop


E appena ho premuto il bottone in runtime... i numeri si incrementavano senza che la finestra si bloccasse!!
Può essere utilissimo per qualche ciclo particolarmente lungo, infatti mi chiedevo come facevano le scansioni degli antivirus a funzionare con un ciclo for senza che la finestra mostrasse il tipico sfondo bianco delle finestre bloccate...

P.S.: in http://www.planet-source-code.com/ ho persino trovato un emulatore per il gameboy color fatto in VB.NET!!!!! Da paura!!