对Swing及异步又有了深一步的了解。
Swing下面,默认有两个线程,main和edt(event dispatching thread)。edt负责绘图,所以有所runnable的任务都必须及时返回,否则会出现用户假死的情况。main可以睡眠之类的。耗时的操作一般放在第三线程中做,比如下载,必须后台运行其他程序。
Swing编程最重要的一点是将后台耗时操作与edt类型的操作分开。不知道时,可用javax.swing.SwingUtilities.isEventDispatchThread()进行测试。很有用的一个函数。
时间: 2024-11-04 12:19:07