Timer Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Implementa um temporizador que gera um evento em intervalos definidos pelo utilizador. Este temporizador está otimizado para utilização em aplicações Windows Forms e deve ser usado numa janela.
public ref class Timer : System::ComponentModel::Component
public class Timer : System.ComponentModel.Component
type Timer = class
inherit Component
Public Class Timer
Inherits Component
- Herança
Exemplos
O exemplo seguinte implementa um temporizador de intervalo simples, que dispara um alarme a cada cinco segundos. Quando o alarme ocorre, apresenta MessageBox a contagem do número de vezes que o alarme começou e pergunta ao utilizador se o temporizador deve continuar a funcionar.
public ref class Class1
{
private:
static System::Windows::Forms::Timer^ myTimer = gcnew System::Windows::Forms::Timer;
static int alarmCounter = 1;
static bool exitFlag = false;
// This is the method to run when the timer is raised.
static void TimerEventProcessor( Object^ /*myObject*/, EventArgs^ /*myEventArgs*/ )
{
myTimer->Stop();
// Displays a message box asking whether to continue running the timer.
if ( MessageBox::Show( "Continue running?", String::Format( "Count is: {0}", alarmCounter ), MessageBoxButtons::YesNo ) == DialogResult::Yes )
{
// Restarts the timer and increments the counter.
alarmCounter += 1;
myTimer->Enabled = true;
}
else
{
// Stops the timer.
exitFlag = true;
}
}
public:
static void Main()
{
/* Adds the event and the event handler for the method that will
process the timer event to the timer. */
myTimer->Tick += gcnew EventHandler( TimerEventProcessor );
// Sets the timer interval to 5 seconds.
myTimer->Interval = 5000;
myTimer->Start();
// Runs the timer, and raises the event.
while ( !exitFlag )
{
// Processes all the events in the queue.
Application::DoEvents();
}
}
};
int main()
{
Class1::Main();
}
public class Class1 {
static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
static int alarmCounter = 1;
static bool exitFlag = false;
// This is the method to run when the timer is raised.
private static void TimerEventProcessor(Object myObject,
EventArgs myEventArgs) {
myTimer.Stop();
// Displays a message box asking whether to continue running the timer.
if(MessageBox.Show("Continue running?", "Count is: " + alarmCounter,
MessageBoxButtons.YesNo) == DialogResult.Yes) {
// Restarts the timer and increments the counter.
alarmCounter +=1;
myTimer.Enabled = true;
}
else {
// Stops the timer.
exitFlag = true;
}
}
public static int Main() {
/* Adds the event and the event handler for the method that will
process the timer event to the timer. */
myTimer.Tick += new EventHandler(TimerEventProcessor);
// Sets the timer interval to 5 seconds.
myTimer.Interval = 5000;
myTimer.Start();
// Runs the timer, and raises the event.
while(!exitFlag) {
// Processes all the events in the queue.
Application.DoEvents();
}
return 0;
}
}
Public Class Class1
Private Shared WithEvents myTimer As New System.Windows.Forms.Timer()
Private Shared alarmCounter As Integer = 1
Private Shared exitFlag As Boolean = False
' This is the method to run when the timer is raised.
Private Shared Sub TimerEventProcessor(myObject As Object, _
ByVal myEventArgs As EventArgs) _
Handles myTimer.Tick
myTimer.Stop()
' Displays a message box asking whether to continue running the timer.
If MessageBox.Show("Continue running?", "Count is: " & alarmCounter, _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
' Restarts the timer and increments the counter.
alarmCounter += 1
myTimer.Enabled = True
Else
' Stops the timer.
exitFlag = True
End If
End Sub
Public Shared Sub Main()
' Adds the event and the event handler for the method that will
' process the timer event to the timer.
' Sets the timer interval to 5 seconds.
myTimer.Interval = 5000
myTimer.Start()
' Runs the timer, and raises the event.
While exitFlag = False
' Processes all the events in the queue.
Application.DoEvents()
End While
End Sub
End Class
Observações
A Timer é usado para gerar um evento em intervalos definidos pelo utilizador. Este temporizador do Windows foi concebido para um ambiente single-threaded onde threads de interface são usados para realizar o processamento. Exige que o código de utilizador tenha uma interface de mensagens pump disponível e opere sempre a partir do mesmo thread, ou que a chamada seja direcionada para outro thread.
Quando usar este temporizador, utilize o Tick evento para realizar uma operação de sondagens ou para mostrar um ecrã de abertura durante um período de tempo especificado. Sempre que a Enabled propriedade é definida como true e a Interval propriedade é maior que zero, o Tick evento é elevado em intervalos com base na definição da Interval propriedade.
Esta classe fornece métodos para definir o intervalo e para iniciar e parar o temporizador.
Note
O componente Windows Forms Timer é single-thread e está limitado a uma precisão de 55 milissegundos. Se precisares de um temporizador multithread com maior precisão, usa a Timer classe no System.Timers namespace.
Construtores
| Name | Description |
|---|---|
| Timer() |
Inicializa uma nova instância da Timer classe. |
| Timer(IContainer) |
Inicializa uma nova instância da Timer classe juntamente com o contentor especificado. |
Propriedades
| Name | Description |
|---|---|
| CanRaiseEvents |
Obtém um valor que indica se o componente pode gerar um evento. (Herdado de Component) |
| Container |
Obtém o IContainer que contém o Component. (Herdado de Component) |
| DesignMode |
Obtém um valor que indica se o Component está atualmente em modo de design. (Herdado de Component) |
| Enabled |
Obtém ou define se o temporizador está a correr. |
| Events |
Obtém a lista de gestores de eventos que estão ligados a isto Component. (Herdado de Component) |
| Interval |
Obtém ou define o tempo, em milissegundos, antes do Tick evento ser elevado em relação à última ocorrência do Tick evento. |
| Site |
Obtém ou define o ISite do Component. (Herdado de Component) |
| Tag |
Obtém ou define uma cadeia arbitrária que representa algum tipo de estado do utilizador. |
Métodos
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Liberta todos os recursos utilizados pelo Component. (Herdado de Component) |
| Dispose(Boolean) |
Elimina os recursos, exceto a memória, usados pelo temporizador. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetService(Type) |
Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container. (Herdado de Component) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| OnTick(EventArgs) |
Eleva o Tick evento. |
| Start() |
Inicia o temporizador. |
| Stop() |
Para o temporizador. |
| ToString() |
Devolve uma cadeia que representa o Timer. |
evento
| Name | Description |
|---|---|
| Disposed |
Ocorre quando o componente é eliminado por uma chamada ao Dispose() método. (Herdado de Component) |
| Tick |
Ocorre quando o intervalo do temporizador especificado terminou e o temporizador está ativado. |