2010-10-13 11 views
5

मुझे एक लंबे समय से चलने वाला मैक्रो मिला है, जिसमें मैं आउटपुट को आवधिक संदेश लिखता हूं ताकि उपयोगकर्ता कुछ हो रहा हो। समस्या यह है कि मैक्रो समाप्त होने तक आउटपुट तब तक नहीं दिखाया जाता है (जब तक आपके पास प्रतीक्षा जारी नहीं है? संवाद बॉक्स खुला, अजीब रूप से पर्याप्त)।क्या विजुअल स्टूडियो मैक्रोज़ में DoEvents के बराबर है?

क्या ईवेंट कतार 'फ्लश' करने के लिए वैसे भी है?

+0

यह वीबी है तो क्या DoEvents काम नहीं करते हैं? –

+0

@ कृपया, यह वीबीए (मुझे लगता है) है, और किसी भी मामले में मुझे इंटेलिजेंस में 'एप्लिकेशन' ऑब्जेक्ट नहीं दिखाई देता है, लेकिन शायद मुझे कुछ संदर्भ याद आ रहे हैं? – Benjol

+0

बस DoEvents का उपयोग करें, यह वीबीए में एक बयान है। –

उत्तर

0

यदि आप विंडोज फॉर्म का संदर्भ देते हैं तो आप एप्लिकेशन के रूप में एप्लिकेशन को एक्सेस कर सकते हैं।

मैं खिड़कियों अपडेट का जवाब मुख्य आईडीई और वास्तविक समय में बंद कर देता है, जबकि मैक्रो अभी भी केवल

DTE.SuppressUI = False 
    Threading.Thread.Sleep(5000) 

इस तरह के रूप में मैं एक 250 मिलीसेकंड या तो के लिए एक मानक DoEvents & Sleep(55) पाश उपयोग करने का सुझाव के साथ चल रहा है है जब आप यह सुनिश्चित करना चाहते हैं कि यूआई अपडेट किया गया है तो SuppressUI=False के साथ चाल चलाना चाहिए।

+0

अच्छा विचार, इसके अलावा ... यह कोई फर्क नहीं पड़ता :) – Benjol

संबंधित मुद्दे

 संबंधित मुद्दे