Fonction à un intervalle de temps régulier

billoux70 Messages postés 4 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 10 janvier 2008 - 10 janv. 2008 à 16:57
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 11 janv. 2008 à 09:35
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

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 janv. 2008 à 17:41
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.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 janv. 2008 à 09:35
Attention avec les timers et les Cross Thread Operation

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