PAUSAR EXECUCAO

PEGUDO 30/08/2010 14:25:31
#351727
Meu programa faz busca pela internet, sendo que, em determinado momento, ele precisa fazer uma pausa de 02 minutos para fazer um refresh e verificar quantos usuários acessaram o site da empresa nestes dois minutos pausado.

O problema é que quando eu coloco o programa para pausar, ele pausa de uma maneira que parece que travou. Não se consegue nem clicar em um botão e aparece a mensagem [Ô]Não respondendo[Ô], no caption do formulário.

Estou usando:
Threading.Thread.Sleep(120000) [txt-color=#007100][ô]120.000 milesegundos[/txt-color]

Tentei usar:
[txt-color=#0000f0]While not[/txt-color] HorarioInicio = HorarioFinal[txt-color=#007100] [ô]HorarioInicio e HorarioFinal representam as variáveis que guardam o espaço de tempo[/txt-color]
Application.DoEvents
[txt-color=#0000f0]End While[/txt-color]

Mas ele também [Ô]paralisou[Ô].

Alguém pode me ajudar a fazer com que meu programa pause sem ficar paralizado/travado?
MAXCIM 30/08/2010 14:34:40
#351728
[ô] VB6 função API para dar uma pausa na aplicação
Public Declare Sub Sleep Lib [Ô]kernel32[Ô] (ByVal dwMilliseconds As Long)

Sleep(1000)


no Vbnet
System.Threading.Thread.Sleep(5000)
PEGUDO 30/08/2010 15:13:55
#351732
Aí é que ta o problema:

Se eu coloco esta linha de código: System.Threading.Thread.Sleep(5000), o programa trava.

Estou usando 0 VS 2010. Será que é por causa dele?
MAXCIM 30/08/2010 15:26:48
#351734
eu uso o VS2010 aqui e não tenho problema.
PAVILLION 30/08/2010 18:52:57
#351749
PEGUDO...

Não seria melhor você usar um Timer?
PEGUDO 31/08/2010 11:13:13
#351799
Resolvi meu problema.

Utilizei o [txt-color=#0000f0]TimeOfDay[/txt-color].

Usei os métodos referentes ao horario, por exemplo para esperar x segundos eu criei um Public:

[txt-color=#0000f0]Public Sub[/txt-color] Esperar([txt-color=#0000f0]ByVal[/txt-color] Segundos [txt-color=#0000f0]as Integer[/txt-color])[txt-color=#007100] [ô]Onde Segundos são os segundos que eu quero que o programa pause[/txt-color]

Dim Final [txt-color=#0000f0]As Date [/txt-color]= TimeOfDay.AddSeconds(Segundos) [txt-color=#007100][ô]O Final será o horário do momento mais o valor de Segundos[/txt-color]

[txt-color=#0000f0]While Not [/txt-color]TimeOfDay.Second = Final.Second
Application.DoEvents
[txt-color=#0000f0]End While[/txt-color]
[txt-color=#0000f0]End Sub[/txt-color]

Aí eu chamei o procedimento assim : Esperar(5)
Ou seja, O programa vai adicionar à variável [Ô][txt-color=#0000f0]Final[/txt-color][Ô], mais 5 segundos e fará o DoEvents até o TimeOfDay.Second for iqual ao Final.Second

Para o programa espera x minutos, eu fiz a mesma coisa para os segundos, sendo que eu utilizei TimeOfDay.Minute ao invés de TimeOfDay.Second

Obrigado a todos.
Tópico encerrado , respostas não são mais permitidas