Хотя ответ Nescio (DoEvents) будет работать, это заставит ваше приложение использовать 100% одного процессора. Сон сделает пользовательский интерфейс безразличным. Вам нужна комбинация из двух, и волшебная комбинация, которая, кажется, работает лучше всего:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
While IsStillWaitingForSomething()
DoEvents
DoEvents
Sleep(55)
Wend
Почему два DoEvents и один спят в течение 55 миллисекунд? Спящий режим в 55 миллисекунд является наименьшим срезом, который может обрабатывать VB6, и использование двух DoEvents иногда требуется в случаях, когда требуется супер-отзывчивость (не API, но если ваше приложение отвечает на внешние события, SendMessage, Interupts и т. Д. ).