में वीबीए + थ्रेड एमएस एक्सेस वीबीए में एक अलग धागे पर चल रही प्रक्रिया कैसे बना सकते हैं? मैं एक ऐसी प्रक्रिया बनाना चाहूंगा जो बस बैठे और एक संदेश की प्रतीक्षा करेगी।एमएस एक्सेस
उत्तर
अच्छा सवाल है, लेकिन मुझे लगता है कि यह नहीं किया जा सकता है।
एक ऐसा फॉर्म बनाने का सबसे तेज़ तरीका है जिसे आप एक फॉर्म बनाना चाहते हैं और उस पर मौजूदा या स्वयं नियंत्रण कर सकते हैं।
इसे सीधे वीबीए में करने का कोई तरीका नहीं है। Here is a MSDN forum discussion इस बारे में विस्तार से बात कर रहे हैं। मल्टीथ्रेडिंग के लिए कार्यालय ने कभी भी वीबीए एक्सटेंशन का खुलासा नहीं किया।
हालांकि, आप इसे विंडोज एपीआई पर कॉल करके या वीबीए (अपनी जगह लिखे गए) में अपना स्वयं का COM ऑब्जेक्ट बनाकर कर सकते हैं जो आपके लिए बहुप्रचारित कॉल करता है। बस कॉलिंग थ्रेड पर सबकुछ मार्शल करना सुनिश्चित करें, किसी भी तरह (शायद आपके COM ऑब्जेक्ट के विरुद्ध मतदान करना, या कुछ समान)।
इसके अलावा, आप COM थ्रेडिंग पर बेंडवेई लिंक को देखना चाह सकते हैं, क्योंकि यह इसके लिए बहुत प्रासंगिक है।
यदि एमएस एक्सेस वीबीए आपको फॉर्म का उपयोग करने देता है, एक फॉर्म पर टाइमर ड्रॉप करता है और देरी को वास्तव में कम मूल्य पर सेट करता है, जैसे कि 10 एमएस। फिर टाइमर इवेंट फ़ंक्शन में अपना कोड रखें, और इसे एक अलग थ्रेड में निष्पादित किया जाएगा।
शेल स्क्रिप्ट शुरू करने के लिए ShellOpen() जैसे कुछ का उपयोग करने के बारे में कैसे, उदाहरण के लिए Visual Basic Script x times, जो काम करेगा, एक फ़ाइल के माध्यम से स्क्रिप्ट के साथ संचार कर रहा है (और परिणाम आने पर पता लगाने के लिए पूलिंग तंत्र)? मुझे लगता है कि एक COM घटक लिखने से करना आसान है। इसके अलावा, वीबी स्क्रिप्ट वीबीए के समान ही है। खराब पक्ष काफी कुछ हैं, हालांकि - फ़ाइल को लिखना और पढ़ना स्मृति साझा करने से ज्यादा समय ले रहा है, पूलिंग वीबीए स्क्रिप्ट को उत्तरदायी नहीं लग सकती है, आदि
आप DoEvents प्रक्रिया का भी उपयोग कर सकते हैं जो सिस्टम को संभालने देता है आयोजन। समय-समय पर इस सब को कॉल करें और मुख्य धागा शोज़ न करें।
यह एक अच्छा समाधान नहीं है, यह बुरा है, वास्तव में बुरा है – Onkelborg
और ऐसा बुरा समाधान क्यों है? मैंने अपनी स्क्रिप्ट में इस दृष्टिकोण का उपयोग किया है और यह अच्छा काम करता है। मैंने 1000 एमएस या एक सेकेंड के अंतराल पर डोवेन्ट्स को बुलाया। – Ionut
अच्छा, यह काम किया, लेकिन यह है। एक इंटरफ़ेस जो प्रति सेकंड एक बार संदेशों का जवाब देता है वह उत्तरदायी नहीं है। और सिर्फ मतदान के लिए प्रोग्राम निष्पादित कोड रखना बुरा व्यवहार है। कुछ भी नहीं होने पर कार्यक्रम को सोने के लिए धक्का देना बेहतर होता है। इस कारण से अन्य कार्यक्रम लाभ कम संदर्भ स्विच हो रहे हैं, और बिजली की खपत कम हो जाती है। यदि आपको वास्तव में, वास्तव में मतदान करना है, तो DoEvents- दृष्टिकोण का उपयोग न करें, कम से कम एक टाइमर का उपयोग करें, यह आपके संदेश कतार को गड़बड़ नहीं करेगा और आपके आवेदन को उत्तरदायी नहीं बनायेगा – Onkelborg
आप इस समाधान की जाँच करने के लिए चाहते हो सकता है: http://www.excelhero.com/blog/2010/05/multi-threaded-vba.html
यह एक्सेल है, लेकिन यह व्यावहारिक रूप से ही होना चाहिए। सही: यह VBScript "एजेंट" का निर्माण और उन्हें .. कार्यों को अंजाम उदाहरण चेक राशि से काम करता है, यह काफी प्रभावशाली
-Viggo
- 1. एमएस एक्सेस
- 2. एमएस एक्सेस
- 3. एमएस एक्सेस
- 4. एमएस एक्सेस
- 5. एमएस एक्सेस
- 6. एमएस-एक्सेस:
- 7. एमएस एक्सेस
- 8. एमएस एक्सेस
- 9. एमएस एक्सेस
- 10. एमएस एक्सेस
- 11. एमएस-एक्सेस
- 12. एमएस एक्सेस
- 13. अपवाद जब एमएस एक्सेस
- 14. मैं एमएस एक्सेस
- 15. निबर्ननेट और एमएस एक्सेस
- 16. एमएस एक्सेस गुण
- 17. एमएस-एक्सेस क्वेरी
- 18. एक एमएस एक्सेस फॉर्म
- 19. एमएस एक्सेस डेटाबेस
- 20. एमएस एक्सेस: इस आपरेशन
- 21. एमएस एक्सेस डेटाबेस
- 22. कैसे एमएस एक्सेस तालिका
- 23. एमएस एक्सेस डेटाबेस
- 24. एक्सेस एसक्यूएल एमएस एक्सेस का उपयोग कर
- 25. एमएस-एक्सेस डेटाबेस लॉक एक्सेस डीबी
- 26. टीएसक्यूएल को एमएस-एक्सेस एसक्यूएल
- 27. एमएस एक्सेस 2000 से 2010
- 28. वीबीए के बिना एमएस एक्सेस?
- 29. एमएस एक्सेस एसक्यूएल, डेटा प्रकार
- 30. रूबी और एडीडीबी (एमएस एक्सेस)
+1 है। आप एक बहुप्रचारित घटक (या मौजूदा एक का उपयोग कर सकते हैं) लिख सकते हैं और इसे वीबीए से कॉल कर सकते हैं, लेकिन वीबीए स्वयं बहुसंख्यक नहीं है। – Joe