2011-02-11 13 views
6

पुनर्प्राप्त करने का कोई साफ तरीका है, मैं अलग थ्रेड से एडब्ल्यूटी इवेंट डिस्पैच थ्रेड (ईडीटी) स्वास्थ्य की कुछ निगरानी करने की कोशिश कर रहा हूं। अगर मैं दिल की धड़कन खोना शुरू करता हूं तो मैं ईडीटी स्टैक ट्रेस को डंप करना चाहता हूं। समस्या यह है कि EventQueue वर्तमान प्रेषण थ्रेड को पुनर्प्राप्त करने का कोई तरीका नहीं दिखाता है, विधि जो पैकेज निजी है (शायद अच्छे कारण के लिए)। इसलिए मैं के माध्यम से सभी धागे खोज सकते हैं या तो और AWT-EventQueue एक्स की तरह एक नाम के साथ एक धागा देखने या एक invokeLater या invokeAndWait का उपयोग करें और मेरी runnable धागा बंद बचाने के लिए, की तरह कुछ है:क्या एडब्ल्यूटी इवेंट प्रेषण धागा

EventQueue.invokeLater(new Runnable() { 
    public void run() { 
     eventDispatchThread = Thread.currentThread(); 
    }    
}); 

तो हर जब मैं थ्रेड स्टैक को डंप करने के लिए जाता हूं तो मुझे पहले यह सुनिश्चित करना होगा कि मुझे प्राप्त ईडीटी अभी भी जिंदा है और अगर थ्रेड प्राप्त करने के लिए पूरी प्रक्रिया को फिर से नहीं जाना है। मैं बस ऐसा करने के लिए एक क्लीनर तरीका ढूंढ रहा हूं।

उत्तर

1

वैकल्पिक रूप से, आप EventQueue का विस्तार कर सकते हैं, जैसा कि here दिखाया गया है।

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