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:
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