2010-06-19 7 views
6
private static void Main(string[] args) 
{ 
    for (;;) 
    { 
     TemporaryCityTool.TemporaryCityTool.AddCity(); 
     Console.WriteLine("waiting..."); 
     Thread.Sleep(3600); 
    } 
} 

क्यों Thread.sleep काम नहीं कर रहा है। मुझे संदेश हर समय इंतजार कर रहा है। मैं चाहता हूं कि वह एप्लिकेशन 10 मिनट तक इंतजार करेगा और फिर जारी रहेगा।एप्लिकेशन चलने पर लूप में सोएं, लेकिन बहुत कम

उत्तर

14

Thread.Sleep मिलीसेकेंड, नहीं सेकंड में एक मूल्य लेता है, तो यह केवल ग बताता है 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)" :) –

-1

thx, मेरी बड़ी गलती। जॉन फेमिनेला मैं अब थ्रेड का उपयोग करता हूं।

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

संबंधित मुद्दे