【问题标题】:Is there a clean way to retrieve the AWT event dispatch thread是否有一种干净的方法来检索 AWT 事件调度线程
【发布时间】:2011-06-25 20:33:36
【问题描述】:

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

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

然后每次我去转储线程堆栈时,我必须首先确保我拥有的 EDT 仍然存在,如果没有再次通过整个过程来获取线程。我只是在寻找一种更清洁的方法来做到这一点。

【问题讨论】:

    标签: java swing awt


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 1970-01-01
      • 2014-08-10
      • 2012-10-14
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多