TaskLocal<T> Class?
本文关键字:Class gt TaskLocal lt | 更新日期: 2023-09-27 18:07:14
我们希望将TPL添加到长时间运行的进程的特定部分,并且可以拆分为并发子进程。在这一点上,我们遇到的核心问题是,我们当前的代码依赖于EntityFramework 6.1 DbContext,这不是线程安全的。我花了一些时间深入研究TPL及其内部工作原理。似乎我们不能使用ThreadLocal,因为任务可以/将有多个线程在其整个生命周期中运行(如果我理解正确的话),并且执行任务最终将与多个ThreadLocal实例交互。
接下来我想到的是一个TaskLocal对象,它可以在任务的整个生命周期中存储DbContext(从而将它与运行相同代码的其他并发任务清晰地分离开来——每个任务都有自己相应的TaskLocal)。
在这个线程中提到了类似的东西,但它没有提供任何代码或代码链接。
这可能吗?另外,到目前为止,我对TPL的理解是否正确?
实际上,. net已经有了一个:AsyncLocal<T>
类。
看起来这就是你想要的