使用相当复杂的应用程序,似乎更新Windows会有延迟。
添加调试和计时器后,Timecheck 1和Timecheck 2之间最多相差0.5秒,这在绘制时实际上是非常明显的延迟。
userinput
“ myFunctionCall(myData);”调用已从invokeLater()中删除,并且延迟消失了。
这告诉我,EDT中发生了很多事情,呼叫基本上已经排队,并且花了一些时间才能到达。
这个假设正确吗?
如果是,那么有没有办法在拨打电话之前检查EDT上的内容?
看到那里有什么电话,可能会导致我过度使用EDT,或者可能看到EDT是否太忙,可以直接拨打System.out.println("Timecheck 1 : " + new SimpleDateFormat("HH.mm.ss.SSS").format(new Date()));
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
System.out.println("Timecheck 2 : " + new SimpleDateFormat("HH.mm.ss.SSS").format(new Date()));
myFunctionCall(myData);
}
});
的电话。
如果太忙了,也许我会直接调用它,并且仅在通话量很少的情况下才使用EDT。