我有一个在循环中运行的线程,并且想在启动线程的对话框关闭后终止一个线程。最好的方法是什么?
问问题
293 次
2 回答
5
你可以调用interrupt()
线程。但是,这不会停止线程,除非您在线程循环中对其进行处理。
Thread t = new Thread() {
@Override
public void run() {
while (shouldLoop() && !isInterrupted()) {
. . .
}
}
}();
// somewhere else:
t.interrupt(); // will exit thread on next loop iteration
如果您不想使用interrupt()
(例如,您没有对线程的引用),您可以在线程代码可访问的某处设置一个标志。您仍然需要在线程循环中检查它并退出循环(和run()
方法)才能退出线程。
于 2012-11-20T02:41:13.780 回答