Jus*_*tin 11 java debugging swing multithreading
我正在寻找一种自动方法来检测我的代码中违反Swing的单线程策略.我正在寻找一些类似AOP代码的内容,当你在swing应用程序运行时你将它放入虚拟机中并让它记录在EDT之外修改swing组件的任何地方.
我不是AOP人,但我想在每个java.swing.*类周围创建一个AOP代理
AOP_before(Method m, Object args[]) {
if (!isEventDispatchThread(Thread.currentThread()) {
logStack(new RuntimeException("violation!"));
}
invoke(m, args);
}
Run Code Online (Sandbox Code Playgroud)
有人知道这样做的项目或实用程序吗?
我没有使用过这个特殊的,但是这个CheckThreadViolationRepaintManager应该可以解决这个问题.
它确实需要添加:
RepaintManager.setCurrentManager(new CheckThreadViolationRepaintManager());
Run Code Online (Sandbox Code Playgroud)
然而,你的代码.