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

C# में थ्रेड को रोकना (Pause) - Sleep मेथड

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

सिंटैक्स

Thread.Sleep(मिलीसेकंड्स);
// या
Thread.Sleep(TimeSpan);

उदाहरण: 1 सेकंड के लिए लूप में पॉज करना

using System;
using System.Threading;

namespace Sample {
    class Demo {
        static void Main(string[] args) {
            for (int i = 0; i < 10; i++) {
                Console.WriteLine("Sleep for 1 second!");
                Thread.Sleep(1000); // 1000 मिलीसेकंड्स = 1 सेकंड
            }
            Console.ReadLine();
        }
    }
}

आउटपुट

Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!
Sleep for 1 second!

महत्वपूर्ण बिंदु

  • Thread.Sleep(0) थ्रेड को शेष क्वांटम त्यागने के लिए मजबूर करता है (यील्ड)।
  • Thread.Sleep(-1) या Thread.Sleep(Timeout.Infinite) थ्रेड को अनिश्चित काल के लिए ब्लॉक करता है।
  • स्लीप के दौरान थ्रेड कोई CPU साइकल नहीं खपत करता।
  • UI थ्रेड (मुख्य थ्रेड) पर Sleep कॉल करने से एप्लिकेशन अनुत्तरदायी हो जाता है।

बेहतर विकल्प: async/await के साथ Task.Delay

आधुनिक C# में, विशेषकर UI एप्लिकेशन्स में, Task.Delay का उपयोग करना बेहतर है क्योंकि यह थ्रेड को ब्लॉक नहीं करता:

// खराब: UI फ्रीज हो जाएगा
Thread.Sleep(5000);

// अच्छा: UI उत्तरदायी रहता है
await Task.Delay(5000);

उपयोग केस

  • रेट लिमिटिंग (API कॉल्स के बीच देरी)
  • रिट्री लॉजिक में बैकऑफ
  • सिमुलेशन/टेस्टिंग में कृत्रिम देरी
  • कंसोल एप्लिकेशन्स में आउटपुट पेसिंग
  1. Android में thread.sleep() का उपयोग कैसे करें? Android में thread.sleep() का उपयोग कैसे करें?

    Android में Thread.sleep() का उपयोग करके विलंब करना उदाहरण में जाने से पहले, हमें पता होना चाहिए कि थ्रेड क्या है। एक थ्रेड एक हल्का सब-प्रोसेस है, यह UI को बाधित किए बिना बैकग्राउंड ऑपरेशन करने जा रहा है। यह उदाहरण दर्शाता है कि Android में thread.sleep() का उपयोग कैसे करें। चरण 1: नया प्रोजेक्ट ब

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

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

  1. - पायथन में Nवीं फाइबोनैचि संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या n है, हमें nवीं फाइबोनैचि पद ढूंढना है। जैसा कि हम जानते हैं iवां फाइबोनैचि पद f(i) = f(i-1) + f(i-2), पहले दो पद 0, 1 हैं। उदाहरण के लिए, यदि इनपुट 15 है, तो आउटपुट 610 होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: first := 0, second := 1 i को 2 से n तक के