是否有一种干净的方法来检索AWT事件派发线程

时间:2011-02-11 21:49:15

标签: java swing awt

我正在尝试从单独的线程中监视AWT事件调度线程(EDT)运行状况。如果我开始丢失心跳,我想转储EDT堆栈跟踪。问题是EventQueue没有公开检索当前调度线程的方法,该方法是包私有(可能有充分理由)。因此,我可以搜索所有线程并查找名称类似于AWT-EventQueue-X的线程,或使用invokeLater或invokeAndWait并让我的runnable保存线程,例如:

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

然后每次我去转储线程堆栈时,我必须首先确保我得到的EDT仍然存活,如果没有再次完成整个过程来获取线程。我只是想找一个更干净的方法来做这件事。

1 个答案:

答案 0 :(得分:1)

或者,您可以展开EventQueue,如图所示here