假设我创建了一个任务
bool aBoolean = true;
Task.Factory.StartNew(() =>
while(aBooloean) {
...
}
}通过全局布尔值退出任务是不是更好?
还是使用CancellationTokenSource更好?
什么时候适合使用CancellationTokenSource来结束任务?
它只是在你使用CancellationTokenSource时抛出一个异常,让事情处于不一致的状态吗?
谢谢
发布于 2012-08-14 12:45:17
使用“全局”布尔值可能会有被优化或缓存到CPU缓存中的风险,并且您可能看不到值的变化。CancellationTokenSource是取消Task的推荐方法。任务使用令牌来测试是否请求取消,并简单地从任务的Action委托返回。如果您不想抛出异常,则不需要抛出异常。
https://stackoverflow.com/questions/11945770
复制相似问题