2010-06-19 5 views

Respuesta

14

Thread.Sleep toma un valor en milisegundos, no segundos, por lo que este sólo dice el c urrent thread para esperar 3.6 segundos. Si quieres que esperar 10 minutos, utilice:

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

Esto es probablemente un uso inadecuado de Sleep, sin embargo. Considere el uso de un temporizador en lugar, de manera que se obtiene algo a lo largo de las líneas de:

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

Ver this StackOverflow thread para más detalles al respecto.

2

3600 es 3.6 segundos. Si usted quiere que dormir durante 10 minutos, debe configurarlo para 600000.

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

que es igual a:

Thread.Sleep(600000); 
3

El argumento del método Sleep es en milisegundos, así que si quieres dormir durante 10 minutos:

Thread.Sleep(10 * 60 * 1000); 
1

thrad.sleep está en mili-segundos 10 minutos sería Thread.Sleep (1000 * 60 * 10)

¿Por qué utiliza Thread.Sleep, puede ser mejor usar un temporizador

0

10 minutos en milisegundos es 600,000. Su sueño solo esperará 3.6 segundos. A menudo es más claro utilizar un intervalo de tiempo:

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

Estoy de acuerdo, pero puede que sea aún más clara utilizando el método de fábrica estática "FromMinutes (10)" :) –

-1

thx, mi gran error. John Feminella uso el hilo ahora.

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 todo

+0

Debe aceptar la respuesta que ayudó a los más haciendo clic en el siguiente Tick a la pregunta. Y deberías haber publicado lo anterior como una edición de tu pregunta original. – GenericTypeTea

Cuestiones relacionadas