我有一個正在運行並重復執行任務的線程。我已經實現了一個計數器來顯示線程執行任務的迭代。我偶爾會發現櫃檯停滯不前,而且不再增加。我沒有收到任何錯誤或例外。應用程序運行,但它看起來像線程剛剛停止沒有我問。線程無法停止
我將添加一些代碼來顯示線程執行:
通知INT「C」 - 多數民衆贊成迭代計數器。
public void check() {
Thread check = new Thread() {
public void run() {
for (;;) {
EventQueue.invokeLater(new Runnable() {
public void run() {
// Update GUI here on EventQueue.
try {
Task.readTasks();
} catch (InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (NoteInfo == null || NoteInfo == "") {
btnViewNote.setEnabled(false);
} else {
btnViewNote.setEnabled(true);
}
textField.setText(Task.printNextTask);
c++;
lblCycle.setText("Cycle: " + c);
}
});
try {
Thread.sleep(5000);
// Task.initializeIt();
} catch (InterruptedException ie) {
break;
}
if (killcheck)
break;
}
}
};
check.start();
}
public static void stopChecking() {
killcheck = true;
progressBar.setValue(0);
textArea.setText("");
textField.setText("");
c = 0;
lblCycle.setText("Cycle: " + c);
}
我把打印語句休息前看到沒線程結束。我還會在C++語句之前放置一個print語句。當計數器停止增加時,我也會啓動調試器並掛起線程。 – Alvin 2012-04-05 09:14:27