Timer Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een timer geïmplementeerd die een gebeurtenis genereert met door de gebruiker gedefinieerde intervallen. Deze timer is geoptimaliseerd voor gebruik in Windows Forms toepassingen en moet in een venster worden gebruikt.
public ref class Timer : System::ComponentModel::Component
public class Timer : System.ComponentModel.Component
type Timer = class
inherit Component
Public Class Timer
Inherits Component
- Overname
Voorbeelden
In het volgende voorbeeld wordt een eenvoudige intervaltimer geïmplementeerd, waarmee elke vijf seconden een alarm wordt uitgeschakeld. Wanneer het alarm optreedt, wordt een MessageBox telling weergegeven van het aantal keren dat het alarm is gestart en wordt de gebruiker gevraagd of de timer moet worden uitgevoerd.
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
Opmerkingen
Een Timer wordt gebruikt om een gebeurtenis te genereren met door de gebruiker gedefinieerde intervallen. Deze Windows timer is ontworpen voor een omgeving met één thread waarin UI-threads worden gebruikt om de verwerking uit te voeren. Hiervoor is vereist dat de gebruikerscode een UI-berichtpomp beschikbaar heeft en altijd werkt vanuit dezelfde thread, of marshal de aanroep naar een andere thread.
Wanneer u deze timer gebruikt, gebruikt u de Tick gebeurtenis om een polling-bewerking uit te voeren of om een welkomstscherm voor een opgegeven periode weer te geven. Wanneer de Enabled eigenschap is ingesteld true op en de Interval eigenschap groter is dan nul, wordt de Tick gebeurtenis verhoogd met intervallen op basis van de instelling van de Interval eigenschap.
Deze klasse biedt methoden om het interval in te stellen en de timer te starten en te stoppen.
Note
Het Windows Forms Timeronderdeel is één threaded en is beperkt tot een nauwkeurigheid van 55 milliseconden. Als u een multithreaded timer met een grotere nauwkeurigheid nodig hebt, gebruikt u de Timer klasse in de System.Timers naamruimte.
Constructors
| Name | Description |
|---|---|
| Timer() |
Initialiseert een nieuw exemplaar van de Timer klasse. |
| Timer(IContainer) |
Initialiseert een nieuw exemplaar van de Timer klasse samen met de opgegeven container. |
Eigenschappen
| Name | Description |
|---|---|
| CanRaiseEvents |
Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel een gebeurtenis kan genereren. (Overgenomen van Component) |
| Container |
Hiermee haalt u het IContainer bestand op dat de Component. (Overgenomen van Component) |
| DesignMode |
Hiermee wordt een waarde opgehaald die aangeeft of de Component momenteel in de ontwerpmodus is. (Overgenomen van Component) |
| Enabled |
Hiermee haalt u op of stelt u in of de timer wordt uitgevoerd. |
| Events |
Hiermee haalt u de lijst met gebeurtenis-handlers op die aan dit Componentbestand zijn gekoppeld. (Overgenomen van Component) |
| Interval |
Haalt de tijd in milliseconden op of stelt deze in voordat de Tick gebeurtenis wordt gegenereerd ten opzichte van het laatste exemplaar van de Tick gebeurtenis. |
| Site |
Haalt of stelt de ISite van de Component. (Overgenomen van Component) |
| Tag |
Hiermee haalt u een willekeurige tekenreeks op die een bepaald type gebruikersstatus vertegenwoordigt. |
Methoden
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| Dispose() |
Alle resources die worden gebruikt door de Component. (Overgenomen van Component) |
| Dispose(Boolean) |
Verwijdert de resources, behalve geheugen, die door de timer worden gebruikt. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetService(Type) |
Hiermee wordt een object geretourneerd dat een service vertegenwoordigt die wordt geleverd door of door de Component service Container. (Overgenomen van Component) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| OnTick(EventArgs) |
Hiermee wordt de Tick gebeurtenis gegenereerd. |
| Start() |
Start de timer. |
| Stop() |
Stopt de timer. |
| ToString() |
Retourneert een tekenreeks die de Timerwaarde vertegenwoordigt. |
gebeurtenis
| Name | Description |
|---|---|
| Disposed |
Treedt op wanneer het onderdeel wordt verwijderd door een aanroep naar de Dispose() methode. (Overgenomen van Component) |
| Tick |
Treedt op wanneer het opgegeven timerinterval is verstreken en de timer is ingeschakeld. |