Domanda

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

perché Thread.sleep non funziona. Sto ottenendo messaggio in attesa per tutto il tempo. Voglio che l'applicazione sarà attendere 10 minuti per poi proseguire di nuovo.

È stato utile?

Soluzione

Thread.Sleep ha un valore in millisecondi, non secondi, quindi questo dice solo il thread corrente attendere 3,6 secondi. Se si vuole aspettare 10 minuti, uso:

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

Questo è probabilmente un uso inappropriato di Sleep, però. Considerare l'utilizzo di un timer, invece, in modo da ottenere qualcosa sulla falsariga di:

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

Vedere questa discussione StackOverflow per maggiori dettagli su questo.

Altri suggerimenti

L'argomento della metodo sonno è in millisecondi, così se volete dormire per 10 minuti:

Thread.Sleep(10 * 60 * 1000);

3600 è di 3,6 secondi. Se si vuole che il sonno per 10 minuti, si dovrebbe impostare a 600000.

Thread.Sleep(1000 * 60 * 10);  // Milliseconds(1000) * Seconds(60) * Minutes(10)

che è pari a:

Thread.Sleep(600000);

Thread.sleep è in millisecondi a 10 minuti sarebbero Thread.sleep (1000 * 60 * 10)

Perché stai usando Thread.sleep, si può essere meglio utilizzare un timer

10 minuti in millisecondi è 600.000. Il tuo sonno attenderà solo 3,6 secondi. È spesso più chiaro di utilizzare un periodo:

Thread.Sleep(new TimeSpan(0,10,0));

thx, il mio grande errore. John Feminella io uso filo ora.

private static void Main(string[] args)
        {
            Thread thrd1 = new Thread(new ThreadStart(Trmain));

            thrd1.Start();
        }

        private static void Trmain()
        {
            for (; ; )
            {
                Console.WriteLine("waiting 10 minutes...");
                Thread.Sleep(1000 * 60 * 10);
            }
        } 

thx tutti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top