2

私は自分のコードでこのようなことをしました

    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();
}

私がやりたいのは、 falseを返すexit場合、メソッド全体からです。 しかし、それはメソッドからではなく、ループし続けます。メソッドからスレッドを終了するにはどうすればよいですか? どうすればそれを達成できるか提案をお願いします.....よろしくお願いします....doMemberTasks(memId)
returnResultSetrun

4

2 に答える 2

1

ええ、あなたの最善の策は、フラグを持つことです.

boolean doWork = true;
...
while( doWork && rsMemName.next(){
...
if (doMemberTasks(memId)==false)
{
    cnn.rollback();
    doWork = false;
    return;
}
于 2013-07-08T06:14:21.483 に答える