La classe Timer est définie le fichier source Timer.cs
Elle définit 3 constructeurs :
- Code:
-
public Timer( TimeSpan delay ) : this( delay, TimeSpan.Zero, 1 )
public Timer( TimeSpan delay, TimeSpan interval ) : this( delay, interval, 0 )
public Timer( TimeSpan delay, TimeSpan interval, int count )
delay est le temps avant le premier évenement
interval le temps entre les évenements suivants
count est le nombre de "tick", c'est à dire le nombre de fois que doit "battre" un timer répétitif.
Par conséquent on peut faire un Timer qui :
- déclenchera un unique événement
- déclenchera un évenement périodique indéfiniment
- déclenchera un évenement périodique un nombre de fois spécifié.
Vous pouvez créer votre Timer dans un fichier séparé, mais la plupard du temps, le Timer sera intégré au sein de la classe qui l'appelle.
Ce sera a lors une classe imbriquée, d'accès privé.
Donc au sein de votre classe, vous allez définir :
- Code:
-
// Créer un nouvel objet, ici MonTimer, qui hérite de l'objet Timer
private class MonTimer : Timer
{
// Spécifier que l'objet MonTimer créera l'évènement après trois secondes
public MonTimer( ) : base( TimeSpan.FromSeconds (3.0) )
{
}
// Créer la méthode qui s'exécutera à la fin du délais prescrit, au Tick
protected override void OnTick()
{
}
}
Et dans votre classe, vous définirez une variable de type MonTimer que vous initialiserez avec une nouvelle instance de MonTimer :
- Code:
-
MonTimer timer = new MonTimer();
Ensuite il vous suffira de le lancer par
timer.Start();Vous n'aurez plus qu'à mettre un code dans la méthode OnTick().
Cependant, au sein de la méthode OnTick() vous ne pourrez pas avoir accès aux variable extérieures à MonTimer. Il vous faut donc les passer en argument au constructeur, qui les assignera à des variables privée à MonTimer et donc utilisables dans OnTick().
Par exemple :
- Code:
-
// Créer l'objet MonTimer héritant de l'objet Timer
private class MonTimer : Timer
{
private Mobile m_from;
// Spécifier qu'au bout de trois secondes le mobile (from) deviendra m_from.
public MonTimer( Mobile from) : base( TimeSpan.FromSeconds (3.0))
{
m_from = from;
}
// Spécifier qu'au Tick, le mobile mourra
protected override void OnTick()
{
m_from.Kill();
}
}
Voir le tuto sur le passage d'arguments