Per evitare questo tipo di problemi, in genere, si ricorre alla programmazione multithread.

Oppure puoi fare un ciclo in cui esegui tante volte una "piccola" Sleep (diciamo di 100 ms) con una DoEvents.

Dipende da cosa devi fare esattamente ...