मैं ग्रहण प्लगइन्स लिख रहा हूं, और अक्सर ऐसी परिस्थिति होती है जहां एक चल रहे नौकरी को थोड़ी देर के लिए रुकने की आवश्यकता होती है, यूआई थ्रेड पर असीमित रूप से कुछ चलाएं, और फिर से शुरू करें।ग्रहण में asyncExec से वापसी मूल्य प्राप्त करने का सबसे अच्छा तरीका क्या है?
Display display = Display.getDefault();
display.syncExec(new Runnable() {
public void run() {
// Do some calculation
// How do I return a value from here?
}
});
// I want to be able to use the calculation result here!
एक तरह से यह पूरी नौकरी वर्ग कुछ क्षेत्र है है क्या करने के लिए:
तो मेरी कोड आमतौर पर तरह दिखता है। दूसरा एक अनुकूलित वर्ग का उपयोग करना है (इसके लिए अज्ञात है और इसके परिणामी डेटा फ़ील्ड का उपयोग करें, आदि सबसे अच्छा और सबसे सुरुचिपूर्ण दृष्टिकोण क्या है?
आपको "यूआई थ्रेड पर कुछ अतुल्यकालिक रूप से चलाने" के कथन को स्पष्ट करने की आवश्यकता है क्योंकि आपका नमूना कोड स्पष्ट रूप से display.syncExec का उपयोग करता है, जिसका अर्थ है कि आपका जॉब थ्रेड रोक देगा जबकि कोड को चलाने() को डिस्प्ले थ्रेड पर निष्पादित किया जाएगा। – SCdF
शीर्षक और प्रश्न पाठ 'asyncExec' कहता है, लेकिन उदाहरण कोड में' syncExec' है। वह दो बहुत ही अलग समस्याएं! इनमें से कौनसा? – Lii