WPF में परिचालन में देरी
उपयोगकर्ता अनुभव को बढ़ाने और सुचारू बदलाव सुनिश्चित करने के लिए WPF में किसी ऑपरेशन में देरी करना आवश्यक है। एक सामान्य परिदृश्य नई विंडो पर नेविगेट करने से पहले देरी जोड़ना है।
इसे प्राप्त करने के लिए, थ्रेड.स्लीप का अक्सर उपयोग किया जाता है, जैसा कि दिए गए कोड स्निपेट में दिखाया गया है। हालाँकि, यूआई थ्रेड को थ्रेड.स्लीप के साथ ब्लॉक करने से देरी होने पर यूआई अनुत्तरदायी हो जाता है। यह अगले पृष्ठ पर जाने से पहले "दो मिनट की देरी" संदेश के संक्षिप्त प्रदर्शन के रूप में प्रकट होता है।
इस सीमा को संबोधित करने के लिए, डिस्पैचरटाइमर, टास्क.डेले, या एसिंक/प्रतीक्षा जैसी अतुल्यकालिक तकनीकों का उपयोग करने की अनुशंसा की जाती है।
विधि 1: डिस्पैचरटाइमर का उपयोग करना
डिस्पैचरटाइमर वर्ग एक निर्दिष्ट अंतराल के बाद एक कार्रवाई निष्पादित करने का एक तरीका प्रदान करता है।
tbkLabel.Text = "two seconds delay"; var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) }; timer.Start(); timer.Tick = (sender, args) => { timer.Stop(); var page = new Page2(); page.Show(); };
विधि 2: Task.Delay का उपयोग करना
Task.Delay एक ऐसी विधि है जो एक कार्य लौटाती है जो एक निर्दिष्ट देरी के बाद पूरा होता है।
tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });
विधि 3: Async/Await का उपयोग करना (.NET 4.5 या उच्चतर की आवश्यकता है)
Async/await सिंटैक्स एसिंक्रोनस को संभालने के लिए एक अधिक सुरुचिपूर्ण और पठनीय तरीका प्रदान करता है संचालन।
public async void TheEnclosingMethod() { tbkLabel.Text = "two seconds delay"; await Task.Delay(2000); var page = new Page2(); page.Show(); }
इन एसिंक्रोनस तकनीकों का उपयोग करके, यूआई थ्रेड उत्तरदायी रहता है, और उपयोगकर्ता नए पृष्ठ पर निर्बाध रूप से संक्रमण करने से पहले पूरी विलंब अवधि के लिए "दो सेकंड विलंब" संदेश देखता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3