Jump to content

Ajuda com Threads!


Mateus Diniz
 Share

Recommended Posts

Olá, bom estou fazendo uma aplicação que verifica algumas coisas, ela está sendo feita no consoleApplication(ou seja Adeus Timer), então como não posso usar o timer, eu resolvir ir pro threads , só que não estou conseguindo fazer com que o comando que eu botei se repita a cada x segundos...

A parte do código que eu quero que se repita é essa:

If String.Compare(IPAddress, list) = 0 Then 'Quero que esse comando de verificação se repita a cada x segundos
	 Console.WriteLine("Ip's iguais encontrados,deletando conta...") '
	 Thread.Sleep(2000) ' n deu certo, pois o comando não se repete a cada 2 segundos, como colocado aqui...
	 Console.ReadLine()
 Else
	 Console.WriteLine("Nenhum IP Banido encontrado")
	 Thread.Sleep(2000) ' n deu certo, pois o comando não se repete a cada 2 segundos, como colocado aqui...
	 Console.ReadLine()
 End If
Edited by Mateus Diniz
Link to comment
Share on other sites

Não sei o que entendes em trabalhar com threads, mas não me parece que o código que apresentas tenha muito a ver.

Talvez seja isto que estejas a tentar fazer:

'
Do While True
   If String.Compare(IPAddress, List) = 0 Then 'Quero que esse comando de verificação se repita a cada x segundos
       Console.WriteLine("Ip's iguais encontrados,deletando conta...") '
   Else
       Console.WriteLine("Nenhum IP Banido encontrado")
   End If
   Thread.Sleep(2000)
Loop

No entanto isso complica se quiseres que a aplicação faça mais qualquer coisa (como testar uma tecla para sair), visto que fica parado durante 2 segundos.

Podes fazer também usando a data/hora, assim:

'
Console.WriteLine("Iniciando verificação. Pressione a tecla 'q' para sair da aplicação")
Console.WriteLine("----")
'
Dim dtProximoTeste As System.DateTime = DateTime.Now
Do While Not Console.KeyAvailable()
   '
   If dtProximoTeste < DateTime.Now Then
       If String.Compare(IPAddress, List) = 0 Then 'Quero que esse comando de verificação se repita a cada x segundos
           Console.WriteLine("Ip's iguais encontrados,deletando conta...") '
       Else
           Console.WriteLine("Nenhum IP Banido encontrado")
       End If
       dtProximoTeste = DateTime.Now.AddSeconds(2)
   End If
Loop
Link to comment
Share on other sites

Há diferentes timers (como o post above referiu um deles) penso que pelo menos 2 tipos não precisas de um form para os usar.

Quanto a threads e timers, não têm nada a ver uma coisa com a outra, timers são usados para quando precisas de fazer alguma coisa num intervalo de tempo espcificado, threads são usados para operações longas para impedir que congelem a interface do utilizador, (o UI) deixando a aplicação a "Não responder".

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.