2017-02-07 8 views
0

В настоящее время используется диалог SWT и создается индикатор выполнения наряду с отменой progressBar.Как отменить текущее задание в диалоговом окне

progressBarCancelButton.addSelectionListener(new SelectionAdapter() { 
      @Override 
      public void widgetSelected(SelectionEvent e) { 
        job.cancel(); 
      } 

     }); 

Когда я нажимаю кнопку «Отмена», рабочие задания необходимо остановить. Но я не могу отменить работу. Есть ли лучший способ остановить выполняемые задания.

Может ли кто-нибудь мне помочь?

ответ

1

cancel - правильный метод для вызова отмены Job.

Для этой работы run метод Job должен проверить isCanceled метод IProgressMonitor регулярно.

Так метод run должен быть что-то вроде:

@Override 
protected IStatus run(final IProgressMonitor monitor) 
{ 
    monitor.beginTask(....); 

    try { 
    for (;;) { 
     ... do a small amount of work 

     if (monitor.isCanceled()) { 
      ... clean up 
      return Status.CANCEL_STATUS; 
     } 
     } 
    } 
    finally 
    { 
    monitor.done(); 
    } 


    return Status.OK_STATUS; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^