lang • wait

WAIT

WAIT [ Delay ]

Chama o evento loop de forma recursiva.

Se Delay for especificado, a função não retorna até decorrer Delay segundos.

Se Delay não for especificado, a função processa todos os eventos pendentes e retorna imediatamente. Nesse caso específico, eventos de entrada (teclado e mouse) são ignorados.

Delay é um número de ponto flutuante. Então, se você quiser esperar 100 ms, basta fazer:

Wait 0.1

Exemplos

' Espera um pouco, deixando que o usuário interage com o GUI
Wait 0.05

' Espera, mas, o usuário pode apenas ver o que acontece...
Wait

Se você chamar WAIT a partir de um manipulador de eventos, você pode criar recursões infinitas, até o stack overflows.

Por exemplo, veja o seguinte código:

PUBLIC SUB MySerialPort_Read()

  DIM sData, sTemp AS String
  DIM iTries AS Integer

  FOR iTries = 1 TO 5
    ' Esperar um pouco e ler a resposta.
    WAIT 0.01
    ' Ver se temos alguns dados.
    READ #LAST, sTemp, Lof(LAST)
    sData &= sTemp
    ...
 NEXT

END

WAIT é chamado sem ler nada na porta serial. Por isso, ainda está pronto para ser lido, e o evento Read é gerado de forma recursiva até que ocorra o stack overflows.

Nesse caso, você pode resolver o problema usando a instrução SLEEP no lugar.

Veja também