Timer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Implementuje časovač, který vyvolá událost v uživatelsky definovaných intervalech. Tento časovač je optimalizovaný pro použití v aplikacích Windows Forms a musí být použit v okně.
public ref class Timer : System::ComponentModel::Component
public class Timer : System.ComponentModel.Component
type Timer = class
inherit Component
Public Class Timer
Inherits Component
- Dědičnost
Příklady
Následující příklad implementuje jednoduchý časovač intervalu, který každých pět sekund vypíná alarm. Když dojde k alarmu, MessageBox zobrazí se počet, kolikrát se alarm spustil, a vyzve uživatele, zda má časovač pokračovat v spuštění.
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
Poznámky
A Timer slouží k vyvolání události v uživatelsky definovaných intervalech. Tento časovač systému Windows je navržený pro jednovláknové prostředí, ve kterém se vlákna uživatelského rozhraní používají k provádění zpracování. Vyžaduje, aby uživatelský kód měl k dispozici čerpadlo zpráv uživatelského rozhraní a vždy fungovalo ze stejného vlákna nebo zařazování volání do jiného vlákna.
Při použití tohoto časovače Tick použijte událost k provedení operace dotazování nebo k zobrazení úvodní obrazovky po určitou dobu.
Enabled Kdykoli je vlastnost nastavena true a Interval vlastnost je větší než nula, Tick je událost vyvolána v intervalech na Interval základě nastavení vlastnosti.
Tato třída poskytuje metody pro nastavení intervalu a spuštění a zastavení časovače.
Poznámka:
Komponenta časovače Windows Forms je s jedním vláknem a je omezená na přesnost 55 milisekund. Pokud potřebujete vícevláknový časovač s větší přesností, použijte Timer třídu v System.Timers oboru názvů.
Konstruktory
| Name | Description |
|---|---|
| Timer() |
Inicializuje novou instanci Timer třídy. |
| Timer(IContainer) |
Inicializuje novou instanci Timer třídy společně se zadaným kontejnerem. |
Vlastnosti
| Name | Description |
|---|---|
| CanRaiseEvents |
Získá hodnotu určující, zda komponenta může vyvolat událost. (Zděděno od Component) |
| Container |
Získá ten IContainer , který obsahuje Component. (Zděděno od Component) |
| DesignMode |
Získá hodnotu, která označuje, zda Component je aktuálně v režimu návrhu. (Zděděno od Component) |
| Enabled |
Získá nebo nastaví, jestli je časovač spuštěný. |
| Events |
Získá seznam obslužných rutin událostí, které jsou připojeny k tomuto Component. (Zděděno od Component) |
| Interval |
Získá nebo nastaví čas v milisekundách před Tick vyvoláním události vzhledem k poslednímu výskytu Tick události. |
| Site |
Získá nebo nastaví ISite .Component (Zděděno od Component) |
| Tag |
Získá nebo nastaví libovolný řetězec představující určitý typ stavu uživatele. |
Metody
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| Dispose() |
Uvolní všechny prostředky používané nástrojem Component. (Zděděno od Component) |
| Dispose(Boolean) |
Vyřadí prostředky kromě paměti používané časovačem. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetService(Type) |
Vrátí objekt, který představuje službu poskytovanou objektem Component nebo jeho Container. (Zděděno od Component) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| OnTick(EventArgs) |
Tick Vyvolá událost. |
| Start() |
Spustí časovač. |
| Stop() |
Zastaví časovač. |
| ToString() |
Vrátí řetězec, který představuje Timerhodnotu . |
Událost
| Name | Description |
|---|---|
| Disposed |
Nastane, když komponenta je uvolněna voláním Dispose() metody. (Zděděno od Component) |
| Tick |
Nastane, když zadaný interval časovače uplynul a časovač je povolený. |