Share via


Minuteries

Les minuteries sont des objets légers qui vous permettent de spécifier qu'un délégué est appelé à un moment donné. Un thread du pool effectue l'opération d'attente.

L'utilisation de la classe Timer est simple. Vous créez, en passant un délégué TimerCallback à la méthode de rappel, un Timer, objet représentant l'état qui est passé au rappel, un temps de déclenchement initial et un temps représentant l'intervalle entre les appels du rappel. Pour annuler une minuterie en attente, appelez la fonction Timer.Dispose.

Notes

Il existe deux autres classes de minuterie. La classe System.Windows.Forms.Timer est un contrôle qui utilise les concepteurs visuels et est conçu pour être utilisé dans des contextes d'interface utilisateur ; il déclenche des événements sur le thread d'interface utilisateur. Comme la classe System.Timers.Timer dérive de Component, elle peut être utilisée avec les concepteurs visuels ; elle déclenche également des événements, mais sur un thread ThreadPool. La classe System.Threading.Timer effectue des rappels sur un thread ThreadPool et n'utilise pas du tout le modèle d'événement. Elle fournit également un objet d'état à la méthode de rappel, à la différence des autres minuteries. Elle est extrêmement légère.

L'exemple de code suivant démarre une minuterie qui se déclenche après une seconde (1000 millisecondes) et marque chaque seconde jusqu'à ce que vous appuyiez sur la touche ENTRÉE. La variable qui contient la référence à la minuterie est un champ de niveau classe, afin d'empêcher que la minuterie fasse l'objet d'un garbage collection au cours de son exécution. Pour plus d'informations sur un garbage collection agressif, consultez KeepAlive.

Imports System
Imports System.Threading

Public Class Example
   
   Private Shared ticker As Timer
   
   Public Shared Sub TimerMethod(state As Object)
      Console.Write(".")
   End Sub
   
   Public Shared Sub Main()
      ticker = New Timer(AddressOf TimerMethod, Nothing, 1000, 1000)

      Console.WriteLine("Press the Enter key to end the program.")
      Console.ReadLine()
   End Sub 
End Class
using System;
using System.Threading;

public class Example
{   
   private static Timer ticker;
   
   public static void TimerMethod(Object state)
   {
      Console.Write(".");
   }
   
   public static void Main()
   {
      ticker = new Timer(TimerMethod, null, 1000, 1000);

      Console.WriteLine("Press the Enter key to end the program.");
      Console.ReadLine();
   } 
}

Voir aussi

Référence

Timer

Autres ressources

Fonctionnalités et objets de threading