어떻게하면 아래 작업을 취소 할 수 있습니까? 내가 cancelAsyncBackgroundWorker 취소 (루프없는 단일 메서드)
if (workerLoad.CancellationPending)
{
e.Cancel = true;
break;
}
DoWork을 취소 상태를 확인하고 설정하는 실행 루프가없는
workerLoad = new BackgroundWorker();
workerLoad.WorkerSupportsCancellation = true;
workerLoad.DoWork += (o, ea) =>
{
//Thread.Sleep(100);
Dispatcher.BeginInvoke((Action)(() => BindWorkarea(selectedFolder,false)));
//Dispatcher.Invoke((Action)(() => workareaListView.DataContext = pages));
};
workerLoad.RunWorkerCompleted += (o, ea) =>
{
Mouse.OverrideCursor = null;
};
workerLoad.RunWorkerAsync();
이 파일을 통해 반복하고 디스패처를 사용하여 화면에 추가되어 하나의 방법을 가지고있다.
당신은'BackgroundWorker'를 사용하고 있지 않습니다. 'Dispatcher'에서만 모든 작업을 수행합니다. 'BackgroundWorker'는 전혀 필요 없습니다. –
맞습니다. 발견 한 모든 파일에 대해 UI를 업데이트해야하므로 모든 작업이 디스패처에서 실행됩니다. 운영자를 취소하려면 어떻게해야합니까? – Jay