我在我的代码中做了类似的事情
public void doWork()
{
Job job = new Job("Job")
{
@Override
protected IStatus run(IProgressMonitor monitor) {
while (rsMemName.next()) {
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {
try {
String memId = rsMemName.getString("id");
if (doMemberTasks(memId)==false)
{
cnn.rollback();
return;
}
} catch (Exception ex) {
ex.printStackTrace();
try {
cnn.rollback();
return;
} catch (SQLException e) {
e.printStackTrace();
}
}
});
}
}
}
job.schedule();
}
我想要做的是,如果 doMemberTasks(memId)
返回 false,则从整个方法中退出
。
但它不会从方法中返回
,并在ResultSet
上继续循环。如何从 run
方法终止线程?
请给出任何建议,我怎样才能实现这一目标......
提前致谢....
最佳答案
这是因为 return 只会从线程 run 方法返回。您可以做的是设置一个可能是静态的变量(标志),并在运行代码后检查其值以放置另一个返回语句。
关于java - 从 Eclipse-RCP 中的 run 方法内部终止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17519871/