जब WPF में एक ऑपरेशन निष्पादित करने से पहले देरी शुरू करने का प्रयास किया जाता है, तो थ्रेड.स्लीप का उपयोग करने से बचना महत्वपूर्ण है, क्योंकि यह दृष्टिकोण यूआई थ्रेड को अवरुद्ध करता है और अनुत्तरदायी उपयोगकर्ता इंटरफ़ेस को जन्म दे सकता है। इसके बजाय, अतुल्यकालिक प्रोग्रामिंग तकनीकों का लाभ उठाने पर विचार करें।
एक विकल्प डिस्पैचरटाइमर को नियोजित करना है। यह टाइमर यूआई थ्रेड पर चलता है और एक निर्दिष्ट अंतराल के बाद इसके टिक ईवेंट हैंडलर को कॉल करता है:
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(); };
एक अन्य दृष्टिकोण में कार्य.विलंब का उपयोग करना शामिल है:
tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });
यहां, प्रोग्राम एक कार्य बनाता है जो 2 सेकंड की देरी के बाद पूरा होता है और फिर नया पेज दिखाने के लिए निरंतरता प्रतिनिधि को आमंत्रित करता है।
अंत में, .NET 4.5 या उच्चतर लक्ष्य करने वाली परियोजनाओं के लिए, एसिंक/प्रतीक्षा पैटर्न एक संक्षिप्त और सुविधाजनक प्रदान करता है देरी से निपटने का तरीका:
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