Partager via


Timer Classe

Définition

Implémente une minuterie déclenchant un événement selon un intervalle défini par l'utilisateur. L’utilisation de cette minuterie a été optimisée pour les applications Windows Forms et doit avoir lieu dans une fenêtre.

public ref class Timer : System::ComponentModel::Component
public class Timer : System.ComponentModel.Component
type Timer = class
    inherit Component
Public Class Timer
Inherits Component
Héritage

Exemples

L’exemple suivant implémente un minuteur d’intervalle simple, qui déclenche une alarme toutes les cinq secondes. Lorsque l’alarme se produit, un MessageBox affiche le nombre de fois où l’alarme a démarré et invite l’utilisateur à déterminer si le minuteur doit continuer à s’exécuter.

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 == false )
      {
         
         // 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 == false) {
          // 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

Remarques

Un Timer est utilisé pour déclencher un événement à intervalles définis par l’utilisateur. Ce minuteur Windows est conçu pour un environnement à thread unique où les threads d’interface utilisateur sont utilisés pour effectuer le traitement. Il nécessite que le code utilisateur dispose d’une pompe de messages d’interface utilisateur disponible et fonctionne toujours à partir du même thread, ou marshale l’appel sur un autre thread.

Lorsque vous utilisez ce minuteur, utilisez l’événement Tick pour effectuer une opération d’interrogation ou pour afficher un écran de démarrage pendant une période spécifiée. Chaque fois que la Enabled propriété a la true valeur et que la Interval propriété est supérieure à zéro, l’événement Tick est déclenché à intervalles réguliers en fonction du paramètre de propriété Interval .

Cette classe fournit des méthodes pour définir l’intervalle et pour démarrer et arrêter le minuteur.

Notes

Le composant minuteur Windows Forms est monothread et est limité à une précision de 55 millisecondes. Si vous avez besoin d’un minuteur multithread avec une plus grande précision, utilisez la Timer classe dans l’espace de System.Timers noms.

Constructeurs

Timer()

Initialise une nouvelle instance de la classe Timer.

Timer(IContainer)

Initialise une nouvelle instance de la classe Timer avec le conteneur spécifié.

Propriétés

CanRaiseEvents

Obtient une valeur qui indique si le composant peut déclencher un événement.

(Hérité de Component)
Container

Obtient le IContainer qui contient la Component.

(Hérité de Component)
DesignMode

Obtient une valeur qui indique si Component est actuellement en mode design.

(Hérité de Component)
Enabled

Obtient ou définit si la minuterie est en cours d'exécution.

Events

Obtient la liste des gestionnaires d'événements attachés à ce Component.

(Hérité de Component)
Interval

Obtient ou définit l'heure, en millisecondes, avant le déclenchement de l'événement Tick par rapport à la dernière occurrence de l'événement Tick.

Site

Obtient ou définit le ISite de Component.

(Hérité de Component)
Tag

Obtient ou définit une chaîne arbitraire représentant un certain type d'état d'utilisateur.

Méthodes

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par Component.

(Hérité de Component)
Dispose(Boolean)

Libère les ressources (autres que la mémoire) utilisées par la minuterie.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetService(Type)

Retourne un objet qui représente un service fourni par Component ou par son Container.

(Hérité de Component)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
OnTick(EventArgs)

Déclenche l’événement Tick.

Start()

Démarre la minuterie.

Stop()

Arrête la minuterie.

ToString()

Retourne une chaîne qui représente Timer.

Événements

Disposed

Se produit lorsque le composant est supprimé par un appel à la méthode Dispose().

(Hérité de Component)
Tick

Se produit lorsque l'intervalle spécifié est écoulé et que la minuterie est activée.

S’applique à