Tuesday 15 July 2014

wait - java: why waiting some time is making my program not execute sequentially? -


मेरे पास एक जीयूआई है जो एक निश्चित पुनरावृत्त प्रक्रिया को चरणबद्ध तरीके से प्रदर्शित करता है। मैं इसे एक कदम बनाना चाहता हूं, कदम प्रदर्शित करता हूं, 1 एस प्रतीक्षा करता हूं और दोहराता हूं ...

कोड:

  जबकि (! समाप्त ()) (अग्रिम (); // एक कदम का प्रयास करें और प्रदर्शन करें {Thread.sleep (1000); } पकड़ (बाधित पूर्वनिर्धारित ई) {}}   

क्या होता है, हालांकि, यह है कि जब तक सभी नींद कॉल के पूरे जोड़ा समय पास नहीं होता है, तब कुछ भी प्रिंट नहीं होता है, और तब सभी चरणों को एक बार मुद्रित किया जाता है । मैं निष्पादन प्रवाह क्रमिक रूप से कैसे कर सकता हूं?

नोट: मैंने नींद कॉल को बहुत लंबे, बेकार लूप के साथ बदलने की कोशिश की और व्यवहार समान था।

< Div class = "post-text" itemprop = "text">

आपको यह कार्य अलग थ्रेड में करना होगा। आप अपना गुई ठंड कर रहे हैं आप स्विंगवर्ककर का उपयोग कर सकते हैं यहां आपके पास एक अच्छा लेख है

ध्यान दें कि swingWorker केवल एक बार निष्पादित करेगा। यदि आप और अधिक समय निष्पादित करना चाहते हैं तो आपको javax.swing.Timer भी

के लिए एक नज़र रखना होगा ध्यान दें कि स्विंग टाइमर का कार्य ईवेंट डिस्पैच धागे में किया जाता है । इसका मतलब यह है कि कार्य घटकों को सुरक्षित रूप से हेरफेर कर सकता है, लेकिन यह भी इसका मतलब है कि कार्य को शीघ्रता से कार्यान्वित करना चाहिए। यदि कार्य को निष्पादित करने में कुछ समय लग सकता है, तो टाइमर के बजाय या इसके अलावा स्विंगवार्कर का उपयोग करने पर विचार करें।

No comments:

Post a Comment