0
如何取消下面的工作?取消BackgroundWorker(無循環的單一方法)
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();
我沒有循環運行檢查取消狀態,並設置cancelAsync
if (workerLoad.CancellationPending)
{
e.Cancel = true;
break;
}
DoWork的,得到了只有一個方法,它是通過文件循環使用調度添加到屏幕上。
你沒有使用'BackgroundWorker'。你只在「Dispatcher」中完成所有工作。根本不需要'BackgroundWorker'。 –
你說得對,我需要爲每個我找到的文件更新UI,所以我在調度器下運行所有的東西。我如何取消調度員? – Jay