VB .NET - Usando o Controle Timer


 

O componente Timer presente no VB.NET não é igual ao timer das versões anteriores.  No VB6 o controle timer apresentava a seguinte peculiaridade:

No VB.NET você não pode mais atribuir o valor zero a propriedade Interval . Para ativar o controle deve definir enabled = True.

 

Nota - Outra alteração no VB.NET , ainda que não se refira diretamente ao controle Timer , são as declarações Date e Time ; estas declarações foram substituídas pelas declarações Today e TimeOfDay.

 

O objetivo básico do controle Timer é permitir que o seu código seja executado a um certo intervalo com base em períodos de tempo. Se o controle estiver ativo ele irá acionar o evento Tick a intervalos regulares que você pode definir. Você então deve inserir o código no evento Tick para executar a operação que você deseja que seja executada nos intervalos definidos.

 

O controle Timer não possui uma interface visível em tempo de execução somente em tempo de desenho.

 

Resumo para usar o controle Timer :

Vamos a um exemplo prático:

 

- Inicie um novo projeto no VB.NET do tipo Windows Application

- Dê ao projeto um nome sugestivo , algo como - Relogio.

- Insira um controle Label e altere sua propriedade Name para lblrelogio

- Insira o controle Timer no formulário.

 

Nota: Na verdade o controle não fica inserido no formulário , mas numa área separada abaixo da do projeto , isto deixa deixa o formulário mais limpo e não interfere na visualização do projeto do formulário.

 

-  Defina a propriedade Enabled como True

-  Defina a propriedade Interval igual 1000

- No evento Tick do controle Timer insira o código abaixo :

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick

lblrelogio.Text = DateTime.Now.ToLongTimeString

End Sub

 

Executando o projeto o evento o código do evento Tick do controle Timer irá ser executado a cada 1 s , com isto a hora atual do seu micro será exibida no controle :

 

 

A classe Timer esta presente no namespace System.Timers e podemos usar uma declaração Import para criar um novo Timer :

 

Imports System.Timers

 

Dim t as new Timer()

 Dim t As New System.Timers.Time()

 

Podemos usar outro construtor que permite atribuir um valor para o nosso controle Timer:

 

Dim t As New System.Timers.Timer(3000)

 

Assim como usamos o evento Tick do controle Timer podemos incluir um manipulador de eventos ao controle Timer de maneira a receber as notificações do controle :

 

AddHandler t.Elapsed, AddressOf DispararTimer

 

Public Sub DispararTimer(ByVal seder As Object, ByVal e As System.Timers.ElapsedEventArgs)

     ' seu código aqui

End Sub

 

Vejamos um exemplo:

 

Inicie um novo projeto no VB.NET do tipo Windows Application

 

- Dê ao projeto um nome sugestivo , algo como - Timer2

- Insira dois controles Button e altere o nome padrão para : btnIniciar e btnParar

- Insira um controle Label - label1 - com cor de fundo amarelo e fonte Verdana 12 cor azul

 

- Ao lado o layout do formulário

 

Agora vamos ao código :

 

- No inicio do código do formulário vamos instanciar a variável objeto tempo como do tipo Timer iniciando o seu valor com 1000 ms ( igula 1 s)

Private tempo As New System.Timers.Timer(1000)

- Agora no evento Load do formulário  vamos definir o evento que irá manipular o controle Timer

AddHandler tempo.Elapsed, AddressOf DispararTimer

- A seguir o código da rotina que irá manipular o evento do controle Timer. A rotina irá atribuir o valor da data e hora atual a Label que a exibirá no formulário.

 

Public Sub DispararTimer(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)

  Label1.Text = e.SignalTime.ToString

End Sub

 

- Para ativar a rotina o código do botão - Parar - apenas define a propriedade enabled como True. Para desativar basta definir enabled como False:

 

Private Sub btnIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciar.Click

  tempo.Enabled = True

End Sub


Private Sub btnParar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnParar.Click

  tempo.Enabled = False

End Sub

 

Executando o projeto e clicando no botão - Iniciar -  teremos:

 

 

Como palavra final gostaria de lembrar que o controle Timer não faz trabalho simultâneo. Se você usar dois controles Timers no formulário e executá-los ao mesmo tempo um Timer irá trabalhar interrompendo o seu código para uma única tarefa.


Logo Timers não são adequados para tarefas de longa duração que requeiram execução simultâneas.(Para isto use uma Thread)

 

Até o próximo artigo VB.NET. 

 

Veja os Destaques e novidades do SUPER DVD VB  (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#.

 

        Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti