使用或不使用SwingWorker与常规线程

时间:2010-07-16 13:48:28

标签: java

我有一个开始和停止按钮。我希望能够像用户想要的那样多次启动和停止任务。通过在按下停止按钮时执行wait(),然后在按下启动按钮以再次启动线程时执行notify(),我能够通过常规线程正常工作。这很有效。但是......我扩展了线程。我的老板告诉我永远不要扩展线程,我应该使用SwingWorker。但我注意到SwingWorker只能执行一次。或者它可以在同一个会话中多次执行.. ??有人可以帮我在正确的方向吗?

3 个答案:

答案 0 :(得分:3)

您很少需要延长Thread。您应该做的是将Runnable传递给Thread构造函数。

因为我的口味SwingWorker增加了太多与代码的耦合,应该留给演示非常好的演示。

答案 1 :(得分:1)

每次要运行逻辑时,您都可以创建SwingWorker的新实例。就个人而言,我没有看到你所描述的问题对SwingWorker有什么好处。不是说它不会做得很好......

答案 2 :(得分:0)

您不需要SwingWorker来完成您的工作。 SwingWorker用于必须在后台线程中运行某些内容的情况,更新GUI(如进度)而不会将其锁定。

你做的很好。