Delphi: TPersistent and csDesigning State -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 6 जवाब
मैं कैसे
टीपीर्सिस्टेंट वर्ग सीडीडिज़िंग राज्य में है?
जब कोई डेटाबेस से कार्य करता है, तो एक थ्रेड यदि आप एक अमीर उपयोगकर्ता अनुभव के लिए चाहते हैं तो सहायक रहें आपके मामले में, एक डेटाबेस क्वेरी जो पूरा होने में समय लगता है, लंबी कार्य करने के एकमात्र उद्देश्य के लिए थ्रेड जिम्मेदार होना चाहिए।
किसी भी अस्थायी उत्तरदायी फॉर्म को पूरा करने के लिए इस तरह के एक लंबे डेटाबेस क्वेरी के दौरान प्रदर्शित करता है, आपको अपने मुख्य थ्रेड को ऐसा करने के लिए निर्देश देने के लिए अपने धागा में
सिंक्रनाइज़ करें का उपयोग करके, मुख्य धागा के भीतर अपने सभी जीयूआई अद्यतनों को करना होगा। ऐसा करने के कई तरीके हैं, लेकिन मैं उस विस्तार में नहीं आता हूं।
वीसीएल एक जटिल पुस्तकालय है, और धागा-सुरक्षित नहीं है। आपको कुछ और सब कुछ के साथ सभी इंटरैक्शन की रक्षा करना चाहिए - जो कि कई थ्रेड्स द्वारा उपयोग किया जा सकता है - और उन थ्रेड्स में से प्रत्येक के लिए डिज़ाइन किया जाना चाहिए जो आपके द्वारा कार्यान्वित किए जाने वाले सभी सुरक्षा तंत्र का सम्मान करते हैं। हालांकि, वीसीएल के पास आपकी थ्रेड सुरक्षा की कोई अवधारणा नहीं है, और इसमें स्वयं का मन भी है। इसलिए, आपको हमेशा अपने धागे से
सिंक्रनाइज़ करें प्रक्रिया का सम्मान करना चाहिए, अपने मुख्य थ्रेड को कुछ प्रकार की अनुदेश भेजने के लिए। आपके मामले में, मैं दो सिंक्रनाइज़ किए गए कार्यविधियाँ बनाऊँगा:
प्रारंभप्रक्रिया और
रोकप्रक्रिया । इन प्रक्रियाओं को उदाहरण के लिए कहा जाता है
सिंक्रनाइज़ (स्टार्टप्रक्रिया); जो किसी थ्रेड को सूचित करने के लिए किसी ईवेंट को ट्रिगर करेगा जो कि प्रक्रिया शुरू हुई है - और इस प्रकार मुख्य धागा को आपकी अस्थायी विंडो को एक लंबा प्रक्रिया। जब क्वेरी को किया जाता है तो
StopProcess ईवेंट को सिंक्रनाइज़ करें।
जहाँ तक आप प्रदर्शित करना चाहते हैं, वह वास्तविक रूप से आप पर निर्भर है, हालांकि इन्हें आमतौर पर दोहराए जाने वाले एनीमेशन एक लंबी प्रक्रिया को वर्णन करने के लिए।
Comments
Post a Comment