java - 从 Eclipse-RCP 中的 run 方法内部终止线程

标签 java eclipse-rcp rcp jobs

我在我的代码中做了类似的事情

    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/

相关文章:

java - 带有查询参数的 Jersey DELETE 请求

java - 连接字符串和变量的最简单方法

java - 如何使用jedis集群键方法?

java - 如何将 glassfish 4 eclipse 项目与 glassfish 运行时重新关联?

Eclipse RCP : Command visibleWhen for a dynamic List of Perspectives

java - Windows 状态栏中的应用程序图标

java - 如何将tableviewer的内容保存到swt中的文本文件中

eclipse-rcp - Display类的syncExec()和asyncExec()之间的区别

java - getBootStrapPart() - PagebookView - 类的方法有什么作用?

java - Eclipse 插件的国际化