gpt4 book ai didi

log4net - log4net.ThreadLogicalContext 和 log4net.ThreadContext 有什么区别

转载 作者:行者123 更新时间:2023-12-02 17:03:16 25 4
gpt4 key购买 nike

我不明白官方文档中的解释:

逻辑线程可以从一个托管线程跳转到另一个托管线程。

ThreadContext 和 ThreadLogicalContext 有什么区别?有人可以详细说明一下吗?

谢谢。

最佳答案

我应该回去并将其添加到我自己的问题中(Stefan Egli 在上面链接)...

据我所知,两者之间几乎没有实际差异。

ThreadContext 将信息存储在使用 Thread.SetData 存储的字典中。

ThreadLogicalContext 将其信息存储在使用 CallContext 存储的字典中。

CallContext中存储的信息几乎相同可访问性作为使用 Thread.SetData 存储的信息。也就是说,首先存储该信息的线程可以访问该信息。

现在,如果 ThreadLogicalContext 使用 CallContext.LogicalSetData(或者如果使用 CallContext.SetData 存储的字典实现了标记接口(interface) IThreadAffinative),那么将会有很大的差异。在这种情况下,可以在同一线程中访问存储的任何信息 (LogicalSetData),并将其传递给子线程。此外(与逻辑线程一起流动),信息可以跨远程调用和跨应用程序域流动(如果数据是可序列化的)。

我本想添加一些链接,但我是在 iPhone 上工作,所以有点尴尬。 Stefan Egli 上面发布的链接中有一些很好的链接。

此外,请查看 Jeffrey Richter 9 月份的博客,了解有关 CallContext.LogicalSetData 的文章。我使用他的测试程序作为比较 CallContext.SetData 与 CallContext.LogicalSetData 与 Thread.SetData 与 [ThreadStatic] 的基础。上次检查是最后一次他发布的东西。

当我可以轻松访问计算机时,我会尝试回来发布更多链接和/或一些示例代码。

祝你好运!

关于log4net - log4net.ThreadLogicalContext 和 log4net.ThreadContext 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4507968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com