Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में थ्रेड के Sleep मेथड को लागू करना

Thread.Sleep() मेथड वर्तमान थ्रेड को निर्दिष्ट समय के लिए निलंबित करता है। यह मिलीसेकंड्स या TimeSpan स्वीकार करता है।

उदाहरण: चाइल्ड थ्रेड में Sleep का उपयोग

using System;
using System.Threading;

namespace MyApplication {
    class ThreadCreationProgram {
        public static void CallToChildThread() {
            Console.WriteLine("Child thread starts");
            int sleepfor = 2000;
            Console.WriteLine("Child Thread Paused for {0} seconds", sleepfor / 1000);
            Thread.Sleep(sleepfor);
            Console.WriteLine("Child thread resumes");
        }

        static void Main(string[] args) {
            ThreadStart childref = new ThreadStart(CallToChildThread);
            Console.WriteLine("In Main: Creating the Child thread");
            Thread childThread = new Thread(childref);
            childThread.Start();
            Console.ReadKey();
        }
    }
}

आउटपुट

In Main: Creating the Child thread
Child thread starts
Child Thread Paused for 2 seconds
Child thread resumes

Sleep के ओवरलोड्स

// मिलीसेकंड्स (int)
Thread.Sleep(1000);

// TimeSpan
Thread.Sleep(TimeSpan.FromSeconds(1));
Thread.Sleep(TimeSpan.FromMinutes(1));
Thread.Sleep(TimeSpan.FromHours(1));

// विशेष मान
Thread.Sleep(0);           // थ्रेड यील्ड करता है
Thread.Sleep(-1);          // अनिश्चित काल के लिए ब्लॉक (Timeout.Infinite)
Thread.Sleep(Timeout.Infinite); // समान

महत्वपूर्ण विचार

  • सटीकता: Sleep सटीक नहीं है; OS शेड्यूलर के कारण वास्तविक स्लीप समय थोड़ा अधिक हो सकता है।
  • UI थ्रेड: कभी भी UI थ्रेड पर Sleep न करें - यह एप्लिकेशन को फ्रीज कर देता है।
  • अपवाद: ThreadInterruptedException फेंका जा सकता है यदि अन्य थ्रेड Interrupt() कॉल करता है।

आधुनिक विकल्प: Task.Delay

// असिंक्रोनस, नॉन-ब्लॉकिंग
await Task.Delay(2000); // 2 सेकंड

// कैंसिलेशन के साथ
await Task.Delay(2000, cancellationToken);

कब उपयोग करें

  • कंसोल एप्लिकेशन्स में सरल देरी
  • बैकग्राउंड वर्कर थ्रेड्स में पोलिंग अंतराल
  • टेस्टिंग/सिमुलेशन में कृत्रिम विलंब
  1. - C# प्रोग्राम: वर्तमान थ्रेड की स्थिति जांचें

    C# में वर्तमान थ्रेड की स्थिति जांचने के लिए IsAlive प्रॉपर्टी का उपयोग करें।सबसे पहले, थ्रेड के बारे में जानकारी प्रदर्शित करने के लिए currentThread प्रॉपर्टी का उपयोग करें:Thread thread = Thread.CurrentThread;अब थ्रेड की स्थिति जांचने के लिए thread.IsAlive प्रॉपर्टी का उपयोग करें:thread.IsAliveउदा

  1. - जावा कंकरेंसी - sleep() मेथड

    sleep फंक्शन इस स्लीप फंक्शन का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि वर्तमान में निष्पादित थ्रेड पैरामीटर के रूप में पास की गई मिलीसेकंड की एक विशिष्ट संख्या के लिए स्लीप मोड में चला जाता है। थ्रेड उस संख्या में मिलीसेकंड के लिए निष्पादन बंद कर देता है। आइए एक उदाहरण देखें: उदाहरण import

  1. - जावा में Thread.sleep() मेथड का उपयोग क्या है?

    sleep() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह थ्रेड को एक विशिष्ट समय के लिए सोना/रोकना बनाता है। यदि कोई थ्रेड अन्य थ्रेड्स द्वारा बाधित होता है तो sleep() मेथड InterruptedException फेंकता है, इसका मतलब है कि Thread.sleep() मेथड को try और catch ब्लॉक्स के भीतर संलग्न किया जाना चाहिए या इसे