停止/中断操作

时间:2015-10-05 10:21:18

标签: java parsing operation cancel-button

我有一个Java项目,它使用JSoup解析html页面,并在Excel电子表格(.xls文件)中写入一些日期。

在框架中有一个“停止操作”按钮,因此用户可以停止任务,但是在解析/写入结束之前按钮不起作用。 框架中的“X按钮”具有相同的行为。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

你所做的很可能是将长时间运行的代码放在主线程上。如果你这样做,你的按钮就无法与作品互动并停止它。

您需要将工作移动到另一个线程,然后定期检查该线程(例如,在每个小工作单元之后)是否被礼貌地要求停止(通过设置标记,标记为{{ 1}}这样线程不会缓存值而不会看到更新。

请确保您不会陷入使用volatile的陷阱,这已被弃用,并且有充分的理由。您需要确保您的工作线程与主线程合作,以便在被要求时停止。

答案 1 :(得分:1)

您应该将所有解析和写入操作放在外部线程中,然后在用户单击“停止操作”按钮时中断该线程。

以下是有关如何使用线程中断的示例:http://www.tutorialspoint.com/javaexamples/thread_interrupt.htm