 VB 
.NET - Usando 
o Controle Timer
 
    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:
Você podia atribuir o valor zero à propriedade Interval do controle para desativá-lo e isto equivale a definir a sua propriedade enabled igual a False
Mas a propriedade enabled podia estar definida como True e ainda assim o controle ficaria desativado se a propriedade Interval fosse definida como zero.
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 :
Insira o controle no formulário e configure as seguintes propriedades:
Enabled igual a True para ativar o controle
Atribua um valor a propriedade Interval (em milisegundos - 1000 ms é igual a 1s) que deseja entre os eventos
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 : 
 | 
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 = TrueEnd Sub Private Sub btnParar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnParar.Click tempo.Enabled = FalseEnd 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 Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter
Referências: