Ale*_*lls 1 java swing multithreading swingworker
我发现为了保持Java GUI(使用Swing)响应,唯一的方法是使用SwingWorker类,而不是java.lang.Thread.SwingWorker是否真的是基于多线程GUI的桌面应用程序的唯一途径?有什么好的选择吗?我很少能配置Thread类来做我想做的事情,但SwingWorker通常可以工作,如果有时候是以麻烦的方式.
SwingWorker只不过是一个简单的便利API Thread.因此,它是绝对有可能使用Thread无SwingWorker.重点是Swing不是线程安全的,您在Swing对象上执行的任何操作都必须在Event Dispatch Thread上进行.这是一个根本障碍,并SwingWorker试图帮助你更方便地克服它.
替代方案是继续使用EventQueue.invokeLater(),但SwingWorker具有重要优势:
它同步对自身与EDT之间共享的数据的细粒度访问.
它为进度指示提供属性更改支持.
它实现了Future接口.
有关详细信息,另请参阅Worker Threads和SwingWorker.
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |