मेरे पास एक विंडोज़ फॉर्म है, जिसमें एक टेक्स्टबॉक्स और डेटाग्रिडव्यू है। जैसे ही टेक्स्टबॉक्स का टेक्स्ट बदल जाता है, डेटाग्रिडव्यू का डेटासोर्स अपडेट किया जाता है। यह टेक्स्टबॉक्स के टेक्स्ट चेंज किए गए ईवेंट को संभालने और उदाहरण के लिए डेटासोर्स को एक नई सूची असाइन करके किया जाता है। आम तौर पर नए डेटास्रोत में 1000+ पंक्तियां होती हैं, जो काफी बड़ी मात्रा में डेटा होती है। इसके अलावा, इस सूची को लाने के लिए डीबी से पूछताछ भी समय लेने वाली है।डेटाग्रिड व्यू का जादू
मुझे आश्चर्य की बात है कि अगर मैं टेक्स्टबॉक्स में पर्याप्त तेज़ टाइप करता हूं, तो डाटाग्रिड बार-बार प्रतिपादन को निलंबित करता है, और यह केवल अंतिम परिणाम प्रस्तुत करता है। यह पूरी तरह से मध्य परिणामों को अनदेखा करता है। यह समझ में आता है क्योंकि चल रहे यूआई थ्रेड लगातार पाठ परिवर्तनों के दौरान व्यस्त है। लेकिन मैं अभी भी टेक्स्टबॉक्स में क्यों टाइप कर सकता हूं?
- TextChange
- डेटा प्राप्त करने
- ताज़ा किया जा रहा DataGridView
- TextChange
- डेटा प्राप्त करने
- ताज़ा किया जा रहा DataGridView (प्रतिपादन के बिना/पेंटिंग)
- ... TextChange (प्रतिपादन/चित्रकला के बिना)
- डेटा प्राप्त करना
- ताज़ा डेटाग्रिड व्यू (फिनली रेंडरिंग/पेंटिंग)
- हो गया।
ऐसा लगता है कि टेक्स्टबॉक्स किसी अन्य धागे पर था लेकिन यह बिल्कुल नहीं है। क्या किसी को पता है क्यों?
यह सच है। लेकिन टेक्स्टबॉक्स वास्तव में इनपुट संदेश (कुंजी प्रेस संदेश) को क्यों संसाधित करता है लेकिन डीजीवी प्रत्येक कीप्रेस के बाद खुद को प्रस्तुत नहीं करता है? – Alireza
पेंट संदेश कम प्राथमिकता संदेश है, केवल कतार खाली होने पर ही वितरित किया जाता है। –
धन्यवाद हंस। मैं यूआई थ्रेड, संदेश लूप और संदेशों की प्राथमिकता के बारे में और जानना चाहता हूं। क्या आप कृपया एक अच्छा संदर्भ नामित करेंगे? – Alireza