我有此代碼後的運行狀態:任務仍然是在我的WPF應用程序關閉
this.Closing += WindowOnClosing;
CancellationTokenSource cts = new CancellationTokenSource();
private void func()
{
Task task = new Task.Factory.Start(() =>
{
// long running code...
}), cts.Token);
await task;
}
private void WindowOnClosing(CancelEventArgs e)
{
cts.Cancel();
}
但whenI關閉窗口,任務仍然處於運行狀態。
http://stackoverflow.com/questions/10134310/how-to-cancel-a-task-in-await – mohsen
您應該取消關閉'WindowOnClosing'處理程序併爲任務設置一個延續,以關閉任務取消時的窗口。 –