我有一个开始和停止按钮。我希望能够像用户想要的那样多次启动和停止任务。通过在按下停止按钮时执行wait(),然后在按下启动按钮以再次启动线程时执行notify(),我能够通过常规线程正常工作。这很有效。但是......我扩展了线程。我的老板告诉我永远不要扩展线程,我应该使用SwingWorker。但我注意到SwingWorker只能执行一次。或者它可以在同一个会话中多次执行.. ??有人可以帮我在正确的方向吗?
答案 0 :(得分:3)
您很少需要延长Thread
。您应该做的是将Runnable
传递给Thread
构造函数。
因为我的口味SwingWorker
增加了太多与代码的耦合,应该留给演示非常好的演示。
答案 1 :(得分:1)
每次要运行逻辑时,您都可以创建SwingWorker的新实例。就个人而言,我没有看到你所描述的问题对SwingWorker有什么好处。不是说它不会做得很好......
答案 2 :(得分:0)
您不需要SwingWorker来完成您的工作。 SwingWorker用于必须在后台线程中运行某些内容的情况,更新GUI(如进度)而不会将其锁定。
你做的很好。