Je veux répéter une fonction à partir du moment où le programme s'ouvre jusqu'à ce qu'il se ferme toutes les quelques secondes. Quelle serait la meilleure façon de faire cela en C #?
Utilisez une minuterie. Il existe 3 types de base, chacun adapté à des objectifs différents.
Utilisez uniquement dans une application Windows Form. Cette minuterie est traitée dans le cadre de la boucle de message, de sorte que la minuterie peut être gelée sous forte charge.
Lorsque vous avez besoin de synchronicité, utilisez celui-ci. Cela signifie que l'événement tick sera exécuté sur le thread qui a lancé le minuteur, ce qui vous permet d'effectuer des opérations d'interface graphique sans problème.
C'est le minuteur le plus puissant, qui déclenche des ticks sur un thread d'arrière-plan. Cela vous permet d'effectuer des opérations en arrière-plan sans geler l'interface graphique ou le thread principal.
Dans la plupart des cas, je recommande System.Timers.Timer.
Pour cela le System.Timers.Timer
fonctionne mieux
// Create a timer
myTimer = new System.Timers.Timer();
// Tell the timer what to do when it elapses
myTimer.Elapsed += new ElapsedEventHandler(myEvent);
// Set it to go off every five seconds
myTimer.Interval = 5000;
// And start it
myTimer.Enabled = true;
// Implement a call with the right signature for events going off
private void myEvent(object source, ElapsedEventArgs e) { }
Voir Classe de minuterie (.NET 4.6 et 4.5) pour plus de détails
Utilisez un minuteur . Gardez à l'esprit que .NET est livré avec un certain nombre de minuteries différentes. Cet article couvre les différences.