Есть ли чистый способ получить поток отправки событий AWT

Я пытаюсь выполнить некоторый мониторинг состояния потока отправки событий AWT (EDT) из отдельного потока. Если я начну пропускать биения, я хочу сбросить трассировку стека EDT. Проблема в том, что EventQueue не предоставляет способ получить текущий поток отправки, метод, который делает, является закрытым для пакета (возможно, по уважительной причине). Таким образом, я могу либо выполнить поиск по всем потокам и найти поток с именем, например AWT-EventQueue-X, либо использовать invokeLater или invokeAndWait и получить мое работающее сохранение вне потока, что-то вроде:

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

Затем каждый раз, когда я перехожу к дамп стека потоков, я должен сначала убедиться, что EDT, который у меня есть, все еще жив, и, если нет, снова пройти весь процесс, чтобы получить поток. Я просто ищу более чистый способ сделать это.

6
задан Kevin Waldron 11 February 2011 в 21:49
поделиться