0

JSoup を使用して HTML ページを解析し、Excel スプレッドシート (.xlsファイル) にいくつかの日付を書き込む Java プロジェクトがあります。

フレームには「操作の停止」ボタンがあるため、ユーザーはタスクを停止できますが、解析/書き込みが終了するまでボタンは機能しません。枠内の「×ボタン」も同様の挙動です。

誰かがこれを解決するのを手伝ってくれますか?

4

2 に答える 2

4

あなたが行ったことは、実行時間の長いコードをメインスレッドに置くことである可能性があります。これを行うと、ボタンが作業と相互作用して停止する方法がありません。

作業を別のスレッドに移動し、そのスレッドが定期的に (たとえば、小さな作業単位ごとに) 停止するように丁寧に要求されているかどうかを確認する必要があります (フラグを設定するvolatileことにより、スレッドが停止しないようにマークされます)。値をキャッシュせず、更新を表示しません)。

Thread.stop()これは非推奨であり、正当な理由があるため、これを使用するという罠に陥らないようにしてください。ワーカー スレッドがメイン スレッドと連携して、要求されたときに停止するようにする必要があります。

于 2015-10-05T10:25:33.240 に答える
1

すべての解析および書き込み操作を外部スレッドに配置し、ユーザーが [操作の停止] ボタンをクリックした場合にスレッドを中断する必要があります。

スレッド割り込みの使用方法の例を次に示します: http://www.tutorialspoint.com/javaexamples/thread_interrupt.htm

于 2015-10-05T10:24:08.580 に答える