web-dev-qa-db-fra.com

Comment ajouter un délai de 2 ou 3 secondes

Comment ajouter un délai à un programme en C #?

115
Mulder

Vous pouvez utiliser la fonction Thread.Sleep(), par exemple.

int milliseconds = 2000;
Thread.Sleep(milliseconds);

cela arrête l'exécution du thread en cours pendant 2 secondes.

Quoi qu'il en soit, cela ne pourrait pas répondre à vos besoins ... qu'est-ce que vous essayez d'accomplir exactement?

154
digEmAll

Utilisez une minuterie avec un intervalle défini entre 2 et 3 secondes.

Vous avez le choix entre trois options différentes, selon le type d'application que vous écrivez:

  1. System.Timers.Timer
  2. System.Windows.Forms.Timer
  3. System.Threading.Timer

N'utilisez pas Thread.Sleep , car cela verrouillerait complètement le thread et l'empêcherait de traiter d'autres messages. En supposant qu’une application à un seul thread (comme la plupart d’entre elles), l’ensemble de votre application cessera de répondre, plutôt que de simplement faire une pause, comme vous le souhaitiez probablement.

49
Cody Gray

Pendant 2,3 secondes, vous devriez faire:

System.Threading.Thread.Sleep(2300);
37
Mitja Bonca
System.Threading.Thread.Sleep(
    (int)System.TimeSpan.FromSeconds(3).TotalMilliseconds);

Ou avec les déclarations using:

Thread.Sleep((int)TimeSpan.FromSeconds(2).TotalMilliseconds);

Je préfère ceci à 1000 * numSeconds (ou simplement 3000) car cela rend plus évident ce qui se passe pour quelqu'un qui n'a pas utilisé Thread.Sleep auparavant. Cela documente mieux votre intention.

7