Le sommeil en boucle lorsque l'application est en cours d'exécution, mais dort trop peu

StackOverflow https://stackoverflow.com/questions/3075921

  •  28-09-2019
  •  | 
  •  

Question

private static void Main(string[] args)
{
    for (;;)
    {
        TemporaryCityTool.TemporaryCityTool.AddCity();
        Console.WriteLine("waiting...");
        Thread.Sleep(3600);
    }
}

pourquoi Thread.sleep ne fonctionne pas. Je reçois un message d'attente tout le temps. Je veux que l'application va attendre 10 minutes puis continuer à nouveau.

Était-ce utile?

La solution

Thread.Sleep prend une valeur en millisecondes, pas secondes, donc cela indique que le thread courant attendre 3,6 secondes. Si vous voulez attendre 10 minutes, utilisez:

Thread.Sleep(1000 * 60 * 10);  // 600,000 ms = 600 sec = 10 min

Ceci est probablement une mauvaise utilisation de Sleep, cependant. Pensez à utiliser un minuteur à la place, de sorte que vous obtenez quelque chose le long des lignes de:

// Fire SomeAction() every 10 minutes.
Timer timer = new Timer(o => SomeAction(), null, 10 * 60 * 1000, -1);

Voir ce fil StackOverflow pour plus de détails à ce sujet.

scroll top