Jump to content
Mateus Diniz

Ajuda com Threads!

Recommended Posts

Mateus Diniz

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

Share this post


Link to post
Share on other sites
santanaguy

Boa noite,

Queres que esse if se repita a cada dois segundos? Então tens de fazer um while, ou outro loop qualquer, senão esse código apenas executa uma vez.

Share this post


Link to post
Share on other sites
nelsonr

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

Share this post


Link to post
Share on other sites
He B TeMy

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".

Share this post


Link to post
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

×
×
  • 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.