我有一个Java项目,它使用JSoup解析一个html页面,并在Excel电子表格(.xls文件)中写入一些日期。
在框架中有一个按钮“停止操作”,因此用户可以停止任务,但……
你所做的很可能是将长期运行的代码放在主线程上。如果你这样做,你的按钮就无法与工作互动并阻止它。
您需要将工作移动到另一个线程,然后定期检查该线程(例如,在每个小工作单元之后)是否被礼貌地要求停止(通过设置标记,标记为 volatile 这样线程不会缓存值而不会看到更新)。
volatile
确保你不会陷入使用陷阱 Thread.stop() 为此,这是被弃用的,并且有充分的理由。您需要确保您的工作线程与主线程协作,以便在被要求时停止。
Thread.stop()
您应该将所有解析和写入操作放在外部线程中,然后在用户单击“停止操作”按钮时中断该线程。
这是一个关于如何使用Thread中断的示例: http://www.tutorialspoint.com/javaexamples/thread_interrupt.htm