2010-06-19 46 views

Trả lời

14

Thread.Sleep mất một giá trị trong mili giây, không giây, vì vậy đây chỉ nói với các c urrent thread để chờ đợi 3,6 giây. Nếu bạn muốn chờ 10 phút, sử dụng:

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

Đây có lẽ là việc sử dụng không phù hợp của Sleep, mặc dù. Xem xét sử dụng một Timer thay vào đó, để bạn có được một cái gì đó dọc theo dòng:

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

Xem this StackOverflow thread để biết thêm chi tiết về điều đó.

2

3600 là 3,6 giây. Nếu bạn muốn nó ngủ trong 10 phút, bạn nên đặt nó là 600000.

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

Đó là bằng:

Thread.Sleep(600000); 
3

Đối số của phương pháp Sleep là trong mili giây, vì vậy nếu bạn muốn ngủ trong 10 phút:

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

thrad.sleep là trong vài giây milli 10 phút sẽ được Thread.Sleep (1000 * 60 * 10)

Tại sao bạn đang sử dụng Thread.Sleep, bạn có thể được tốt hơn sử dụng một bộ đếm thời gian

0

10 phút tính bằng mili giây là 600.000. Giấc ngủ của bạn sẽ chỉ chờ đợi 3,6 giây. Việc sử dụng timespan thường rõ ràng hơn:

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

Tôi đồng ý, nhưng bạn có thể làm cho nó thậm chí còn rõ ràng hơn bằng cách sử dụng phương thức tĩnh "FromMinutes (10)" :) –

-1

thx, lỗi lớn của tôi. John Feminella i sử dụng chuỗi ngay bây giờ.

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 tất cả

+0

Bạn nên chấp nhận câu trả lời đó đã giúp hầu hết bằng cách nhấn vào Tick tiếp theo cho câu hỏi. Và bạn nên đã đăng ở trên như là một chỉnh sửa cho câu hỏi ban đầu của bạn. – GenericTypeTea

Các vấn đề liên quan