Hiện tại tôi có hai chuỗi SwingWorker đang thực hiện công việc trên nền. Nếu một ngoại lệ xảy ra, phương thức dừng hoạt động, nhưng luồng vẫn chạy.Làm thế nào hủy bỏ việc thực hiện một SwingWorker?
Tôi làm cách nào để ngừng thực hiện và giết chủ đề của doInBackground()
nếu có ngoại lệ?
this.cancel(true)
không hủy/đóng chuỗi. Làm thế nào tôi có thể đạt được điều này?
@Override
protected Boolean doInBackground() throws Exception {
try {
while (true) {
//some code here
return true;
}
} catch (Exception e) {
this.cancel(true); //<-- this not cancel the thread
return false;
}
}
Tôi thấy các chủ đề này trong gỡ lỗi của Netbeans.
'AWT-EventQueue-0' em execução
'AWT-Windows' em execução
'SwingWorker-pool-1-thread-1' em execução
'SwingWorker-pool-1-thread-2' em execução
//*em execução = in execution
Bạn có thể xác nhận rằng 'doInBackground()' trả về và không chặn bên trong vòng lặp 'while (true)'? – jfpoilpret
Có, tôi đã sửa mã và nó nhập vào ngoại lệ trả về sai. –