如何在UI中删除/释放任务资源
本文关键字:释放 任务 资源 删除 UI | 更新日期: 2023-09-27 18:09:58
在UI中,我创建了一些Task
,例如:
Task taskCancellaCartellaDestinazione = Task.Factory.StartNew(() => CancellaCartellaDestinazione(), CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default);
taskCancellaCartellaDestinazione.ContinueWith(t => TaskGestioneCartelle(), CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());
每个Task
都有自己的变量名,所以我可以直接访问它。如何停止和释放它们的资源?
例如,如果我点击一个停止Button
,线程必须停止。
在taskCancellaCartellaDestinazione
上,我没有看到任何Abort()
或Cancel()
函数。
-
在开始任务之前创建一个
CancellationTokenSource
。 -
将
CancellationToken
从令牌源传递给CancellaCartellaDestinazione
-
在
CancellaCartellaDestinazione
的主体中定期检查取消令牌是否请求取消,在大多数情况下调用ThrowIfCancellationRequested()
是合适的。 -
将取消令牌传递给
StartNew
而不是CancellationToken.None
。 -
取消任务时,在
CancellationTokenSource
上调用Cancel