什么是C#/ .NET 4.0+实现可取消后台线程的方法?

Eri*_*and 2 .net c# multithreading .net-4.0

在.NET 4.0之前,我的理解是如果一个人想要开始一个线程做一些可以取消的工作,那么就可以开始了BackgroundWorker..NET 4带来了TAP模型,以及一大堆新的异步和线程化的东西.是BackgroundWorker仍然做的方式吗?

Ste*_*ary 5

在现代的代码,我建议使用Task.RunCancellationToken.BackgroundWorker相比之下,取消的风格相当复杂:它要求DoWork委托监视自己的BackgroundWorker实例,并将取消请求视为布尔值而不是异常.

我有一篇博文更详细.