线程本地存储和任务本地存储

时间:2013-12-06 08:55:25

标签: c# multithreading task-parallel-library

线程本地存储和任务本地存储有什么区别?为什么它是不同的,因为基础结构一般在线程上传递。

2 个答案:

答案 0 :(得分:1)

一般来说,没有“任务本地商店”的概念。您提到的这部分内容涉及Parallel.ForEach()(和For())。这些方法具有localInitlocalFinally委托的重载,这些委托使用的对象可以作为“任务本地”。

我认为线程本地和任务本地之间的主要区别在于使用task-local,您可以确保后续代码不会看到您忘记清理的值,即使该代码在同一个代码上运行线程。

答案 1 :(得分:0)

有这个,我不确定是否相关。

AsyncLocal ....类可在异步中跨线程持久存储本地数据

https://msdn.microsoft.com/en-us/library/dn906268(v=vs.110).aspx