Fonction à un intervalle de temps régulier

Signaler
Messages postés
4
Date d'inscription
lundi 15 janvier 2007
Statut
Membre
Dernière intervention
10 janvier 2008
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour,

Je suis debutant en c# je cherche à lancer une fonction à un intervalle de temps régulier .

Pour faire simple j'ai une fonction MaFonction() et j'aimerai qu'elle
se declenche tous les x secondes tant que je n'arrete pas le programme.

Si quelqu'un a une idée,

Merci d'avance !

2 réponses

Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Salut,
Utilise l'espace de noms System.Timers.
Un exemple d'utilisation de msdn :

using System;
using System.Timers;

publicclass Timer1
{
privatestatic System.Timers.Timer aTimer;

publicstaticvoid Main()
{
// Normally, the timer is declared at the class level,
// so that it stays in scope as long as it is needed.
// If the timer is declared in a long-running method,
// KeepAlive must be used to prevent the JIT compiler
// from allowing aggressive garbage collection to occur
// before the method ends. (See end of method.)
//System.Timers.Timer aTimer;

// Create a timer with a ten second interval.
aTimer = new System.Timers.Timer(10000);

// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

// Set the Interval to 2 seconds (2000 milliseconds).
aTimer.Interval = 2000;
aTimer.Enabled = true;

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

// If the timer is declared in a long-running method, use
// KeepAlive to prevent garbage collection from occurring
// before the method ends.
//GC.KeepAlive(aTimer);
}

// Specify what you want to happen when the Elapsed event is
// raised.
privatestaticvoid OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
}

/* This code example produces output similar to the following:

Press the Enter key to exit the program.
The Elapsed event was raised at 5/20/2007 8:42:27 PM
The Elapsed event was raised at 5/20/2007 8:42:29 PM
The Elapsed event was raised at 5/20/2007 8:42:31 PM
...
*/

Julien.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
Attention avec les timers et les Cross Thread Operation

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]