2010-06-19 113 views

回答

14

Thread.Sleep發生在毫秒,而不是秒的值,所以這只是告訴C urrent線程等待3.6秒。如果你要等待10分鐘,使用方法:

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

這可能是一個不恰當使用Sleep,雖然。考慮使用定時器來代替,讓你得到的線沿線的東西:

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

有關更多詳情,請參見this StackOverflow thread

2

3600是3.6秒。如果你想讓它睡10分鐘,你應該把它設置爲600000。

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

等於:

Thread.Sleep(600000); 
3

Sleep方法的參數以毫秒爲單位,所以如果你想到10分鐘入睡:

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

thrad.sleep用千分之一秒10分鐘將Thread.sleep代碼(1000 * 60 * 10)

你爲什麼要使用Thread.sleep代碼,您可以使用定時器

0

10分鐘更好以毫秒爲單位是600,000。你的睡眠只會等待3.6秒。它通常更清晰地使用時間跨度:

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

我同意,但使用靜態工廠方法可以讓它更加清晰「FromMinutes(10)」 :) – 2010-06-19 15:34:13

-1

thx,我的大錯誤。 約翰Feminella我現在使用線程。

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所有

+0

你應該接受幫助最按一下旁邊的勾選答案這個問題。而且您應該已將上述內容發佈爲您的原始問題的修改。 – GenericTypeTea 2010-06-19 19:14:33