ऐसा करने का प्रयास करें:
private void startTask() {// main method that creates the background task or class that implements the SwingWorker
AppContext appContext = AppContext.getAppContext();
if(appContext!=null){
appContext.remove(SwingWorker.class);
}
MassiveMigrationTask task = new MassiveMigrationTask();// class that implements the SwingWorker
task.execute();// this process implicitly adds the SwingWorker.class to the appContext
}
वर्णन है: "। AppContext ThreadGroup द्वारा संदर्भित एक मेज जो आवेदन सेवा उदाहरणों संग्रहीत करता है"
तो यह समस्या मूल रूप से हो रही है क्योंकि ऐपकॉन्टेक्स्ट स्विंगवर्कर नामक धागे का नाम सहेज रहा है ..., इसलिए यदि आप थ्रेड का एक और उदाहरण बनाने का प्रयास करते हैं तो आपको शायद कोई सफलता नहीं मिलेगी, क्योंकि यह उस थ्रेड नाम का मूल्यांकन करती है एक नया एक या कम से कम धागे के ढेर में नए डाल निष्पादित करने के लिए निष्पादित करने से पहले, नि: शुल्क यहाँ कोड परामर्श महसूस:
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/awt/AppContext.java
पुनश्च: महत्वपूर्ण: "आप एक आवेदन सेवा नहीं लिख रहे हैं, तो या नहीं पता कि कोई क्या है, कृपया इस वर्ग का उपयोग न करें "
क्या आपका मतलब है कि आप चाहते हैं अपने स्विंगवर्कर कार्यान्वयन वर्ग, या कक्षा के उदाहरण का पुन: उपयोग करें? – Qwerky
मुझे नहीं पता शायद मुझे कुछ गलत मिला लेकिन जब मैं कार्यकर्ता उदाहरण बनाता हूं और execute() विधि को कॉल करता हूं तो कुछ भी निष्पादित नहीं होता है। हालांकि जब मैंने doInBackground() विधि को कॉल करने का प्रयास किया तो श्रमिकों ने –