यह एक सामान्य जावा प्रश्न है और एंड्रॉइड पहले नहीं!माध्यमिक धागे से मुख्य धागे पर कोड चलाना?
मैं जानना चाहता हूं कि माध्यमिक धागे के संदर्भ से मुख्य धागे पर कोड कैसे चलाया जाए। उदाहरण के लिए:
new Thread(new Runnable() {
public void run() {
//work out pi to 1,000 DP (takes a while!)
//print the result on the main thread
}
}).start();
उस तरह - मुझे पता है मेरे उदाहरण एक छोटे से गरीब जावा में जब से तुम कुछ बाहर मुद्रित करने के लिए मुख्य थ्रेड में होने की आवश्यकता नहीं है, और कहा कि स्विंग भी एक घटना कतार है - लेकिन जेनेरिक स्थिति जहां आपको चलाने की आवश्यकता हो सकती है, पृष्ठभूमि थ्रेड के संदर्भ में मुख्य धागे पर एक रननेबल कहें।
संपादित करें: -: पहले से
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0UL), ^{
//do background thread stuff
dispatch_async(dispatch_get_main_queue(), ^{
//update UI
});
});
धन्यवाद तुलना के लिए यहाँ कैसे मैं ऑब्जेक्टिव-सी में ऐसा होता है!
आह ठीक है, इसलिए प्रैक्टिस में मुझे लगता है कि इस तरह की हार पृष्ठभूमि पृष्ठभूमि धागे का उपयोग करने के उद्देश्य से होती है क्योंकि मुख्य धागा पृष्ठभूमि धागे के लिए इंतजार कर रहा है। उस ने कहा, यह एक सुंदर साफ तंत्र की तरह दिखता है! मैं अब कतारों के बारे में और अधिक पढ़ूंगा! – Javawag
आप निश्चित रूप से मुख्य धागा कुछ अन्य काम कर सकते हैं और केवल कुछ भी करने के बजाय अंतराल पर कतार को जांचें लेकिन उस पर अवरुद्ध करें। लेकिन किसी बिंदु पर यह घर-ब्रीइंग चीजों के लायक होने से रोकता है स्विंग के लिए पूरी तरह से अच्छे उपकरण प्रदान करता है :) – Affe
असल में, मैं जो कर रहा हूं उसके लिए यह एक अच्छा विचार है - मैं स्विंग का उपयोग नहीं कर रहा हूं क्योंकि यह परियोजना वास्तव में एक साधारण गेम है Slick2d इंजन का उपयोग करके (अन्यथा आप सही हैं; मैं इसके लिए स्विंग के अंतर्निर्मित टूल का उपयोग करूंगा!) – Javawag