|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package com.fr.design.carton; |
|
|
|
|
|
|
|
|
|
import com.fr.concurrent.FineExecutors; |
|
|
|
|
import com.fr.json.JSONObject; |
|
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
|
import com.fr.stable.ArrayUtils; |
|
|
|
@ -235,14 +236,13 @@ public final class EventDispatchThreadHangMonitor extends EventQueue {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 参考SwingExploer,在处理模态框时没有做特殊处理,也不会输出卡顿堆栈 |
|
|
|
|
* 原因是SwingExploer窗口一直有一个监听事件,不断的add,remove。 |
|
|
|
|
* 由于卡顿日志输出的是事件连续执行的时间,所以一个长时间存在的模态框被不断重复的 |
|
|
|
|
* 监听事件刷新时间,就不会输出了。 |
|
|
|
|
* 参考SwingExplorer,在处理模态框时没有做特殊处理,也不会输出卡顿堆栈 |
|
|
|
|
* 原因是SwingExplorer窗口一直有一个监听事件,不断的add,remove。 |
|
|
|
|
* 由于卡顿日志输出的是事件连续执行的时间,所以一个长时间存在的模态框被不断重复的监听事件刷新时间,就不会输出了。 |
|
|
|
|
* 当检测开关打开后,在这里模拟一下监听事件,给个不耗时的任务就可以。 |
|
|
|
|
*/ |
|
|
|
|
public void startFilterModalWindow() { |
|
|
|
|
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); |
|
|
|
|
scheduledExecutorService = FineExecutors.newSingleThreadScheduledExecutor(); |
|
|
|
|
scheduledExecutorService.scheduleAtFixedRate(new Runnable() { |
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|