2011-02-11 16 views
6

que estoy tratando de hacer un poco de vigilancia de la salud de la rosca AWT Evento de Despacho (EDT) de un hilo separado. Si empiezo a perder los latidos del corazón, quiero volcar el seguimiento de la pila EDT. El problema es que EventQueue no expone una forma de recuperar el hilo de envío actual, el método que hace es paquete privado (probablemente por una buena razón). Así que puedo o bien buscar a través de todos los hilos y buscar un hilo con un nombre como AWT-EventQueue-X o utilizar un invokeLater o invokeAndWait y tener mi ejecutable salvar el hilo, algo así como:¿Hay una manera limpia para recuperar el evento AWT hilo de despacho

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

Entonces, cada Cuando voy a volcar la pila de hilos, primero debo asegurarme de que el EDT que tengo todavía está vivo y, si no, volver a pasar todo el proceso para obtener el hilo. Solo estoy buscando una forma más limpia de hacer esto.

Respuesta

1

Alternativamente, se puede extender EventQueue, como se muestra here.

Cuestiones relacionadas