2017-02-07 1 views
0

현재 SWT 대화 상자를 사용하고 progressBar 취소와 함께 진행률 막대를 만들었습니다.대화 상자에서 실행중인 작업을 취소하는 방법

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

     }); 

취소 버튼을 클릭하면 실행중인 작업을 중지해야합니다. 하지만 작업을 취소 할 수 없습니다. 실행중인 작업을 중지하는 가장 좋은 방법이 있습니까?

아무도 도와 줄 수 있습니까?

답변

1

cancelJob 취소를 호출하는 올바른 방법입니다.

이 작업을 수행하려면 Job 메서드는 IProgressMonitorisCanceled 메서드를 정기적으로 확인해야합니다.

는 그래서 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; 
} 
관련 문제