不太明白官方文档的解释:
逻辑线程可以从一个托管线程跳转到另一个托管线程。
ThreadContext 和 ThreadLogicalContext 有什么区别?
有人可以详细说明一下吗?
Thanks.
我应该回去并将其添加到我自己的问题中(Stefan Egli 在上面链接)......
据我所知,两者之间几乎没有实际差异。
ThreadContext 将信息存储在使用 Thread.SetData 存储的字典中。
ThreadLogicalContext 将其信息存储在使用 CallContext 存储的字典中。
CallContext中存储的信息几乎相同
可访问性作为使用 Thread.SetData 存储的信息。也就是说,首先存储该信息的线程可以访问该信息。
现在,如果 ThreadLogicalContext 使用 CallContext.LogicalSetData(或者如果使用 CallContext.SetData 存储的字典实现了标记接口 IThreadAffinative),那么将会有很大的差异。在这种情况下,可以在同一线程中访问存储的任何信息 (LogicalSetData),并将其传递给子线程。此外(与逻辑线程一起流动),
信息可以跨远程调用和跨应用程序域流动(如果数据是可序列化的)。
我本想添加一些链接,但我是在 iPhone 上工作,所以有点尴尬。 Stefan Egli 上面发布的链接中有一些很好的链接。
另外,请参阅 Jeffrey Richter 9 月份的博客,获取有关 CallContext.LogicalSetData 的文章。我使用他的测试程序作为比较 CallContext.SetData 与 CallContext.LogicalSetData 与 Thread.SetData 与 [ThreadStatic] 的基础。上次检查是最后一次
他发布的东西。
当我可以轻松访问计算机时,我会尝试回来发布更多链接和/或一些示例代码。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)