PAUSAR EXECUCAO
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?
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?
[ô] 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)
Public Declare Sub Sleep Lib [Ô]kernel32[Ô] (ByVal dwMilliseconds As Long)
Sleep(1000)
no Vbnet
System.Threading.Thread.Sleep(5000)
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?
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?
eu uso o VS2010 aqui e não tenho problema.
PEGUDO...
Não seria melhor você usar um Timer?
Não seria melhor você usar um Timer?
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.
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