java在SwingWorker线程中执行的“长时间运行的任务”应该是什么?
我知道如何使用SwingWorker线程,但我仍然没有确切的标准来决定何时使用或不使用
I/O看起来很明显,但在潜在的大型集合上操作的方法呢
一个标准可能是实际运行时间,但什么样的数字(以毫秒为单位)才符合条件
你可以在下面搜索框中键入要查询的问题!
我知道如何使用SwingWorker线程,但我仍然没有确切的标准来决定何时使用或不使用
I/O看起来很明显,但在潜在的大型集合上操作的方法呢
一个标准可能是实际运行时间,但什么样的数字(以毫秒为单位)才符合条件
# 1 楼答案
对我来说是1秒
如果你的处理时间超过这个,你的用户界面就会冻结。在这种情况下,最好显示一个“繁忙”的油漆或进度条
您希望等待您使用的任何应用程序响应多长时间?比如说,你打开了IDE或MS Word或其他任何东西。如果您注意到,在大多数情况下,当应用程序加载时,会显示进度条或其他一些动画,即使文档/项目/任何内容足够小,可以在2秒内打开
# 2 楼答案
基本上,如果你无法预测处理需要多长时间,那么最好将其放在一个单独的线程中,因为这样即使在数据不好的极端情况下,应用程序也能保持响应。好的候选者是
但是为什么不简单地制定一个规则,如果它有一个循环(任何时间)那么它会进入SwingWorker