Как отменить монитор прогресса eclipse4.4

У меня ниже код, написанный в xtend :

void doMyMethod(IProgressMonitor monitor, Collection myCollection) {

    val subMonitor = SubMonitor.convert(monitor, myCollection.size());
    subMonitor.setTaskName("My Task Name...");
    myCollection.forEach [ element |

    if(subMonitor.canceled || monitor.canceled)
    {
        throw new OperationCanceledException
    }

    subMonitor.worked(1)]
 }

Предназначен для остановки монитора выполнения, когда пользователь отменяет монитор выполнения из пользовательского интерфейса. Но не работает. Я следую за использованием монитора progress, который говорит, что не может использовать монитор.Сплит в eclipse 4.6.
Странно, если я поставил точку отладки @subMonitor.работает(1) и запустить eclipse в режиме отладки он работает как ожидалось и отменяет монитор, если отменяет из пользовательского интерфейса, но не работает, если точка отладки удалена. Любая идея была бы очень полезной, потому что у меня не хватает идей, если работает режим отладки, он также должен работать без него!

1 ответ

  1. I could able to cancel the progress monitor by changing to :

    void doMyMethod(IProgressMonitor monitor, Collection myCollection) {
    
    monitor.beginTask(("My Task Name...", myCollection.size());
    
    myCollection.forEach [ element |
    
    if(subMonitor.canceled || monitor.canceled)
    {
        throw new OperationCanceledException
    }
    subMonitor.worked(1)] }
    

    спасибо