Подтвердить что ты не робот

Функция сна Visual Basic

Есть ли простая функция сна в Visual Basic, которая не включает поток.

Что-то похожее, как в: C: sleep(1);

Мы также пробовали этот код:

Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
' pause for 5 seconds
Sleep 5000

... но это не сработало. Это дало мне эту ошибку:

обнаружен PInvokeStackImbalance Сообщение: вызов функции PInvoke 'Ganzenbordspel! Ganzenbordspel.Spel:: Sleep' имеет несбалансированный стек. Это вероятно, потому что управляемый PInvoke подпись не соответствует неуправляемой целевая подпись. Убедитесь, что вызывающего соглашения и параметров подпись PInvoke соответствует целевой неуправляемая подпись.

4b9b3361

Ответ 1

Это очень легко.

Threading.Thread.Sleep(3000)

Ответ 2

Поскольку вы спрашиваете о .NET, вы должны изменить параметр от Long до Integer..NET Integer 32-разрядный. (Классическое целое число VB было всего 16 бит.)

Declare Sub Sleep Lib "kernel32.dll" (ByVal Milliseconds As Integer)

Действительно, управляемый метод не является сложным...

System.Threading.Thread.CurrentThread.Sleep(5000)

Будьте осторожны, когда вы это сделаете. В приложении формы вы блокируете насос сообщений, а что нет, что делает вашу программу видимой. Редко есть sleep хорошая идея.