gpt4 book ai didi

wcf - ThreadStatic - WCF 方法调用是否只在单个线程上执行?

转载 作者:行者123 更新时间:2023-12-01 11:49:10 25 4
gpt4 key购买 nike

我们的 WCF 服务引用的库之一使用 ThreadStatic 变量。服务方法在每次调用开始时设置它的值。我想知道这是否安全——换句话说,我们能否保证只有一个线程专门用于整个调用?或者是否有可能调用可以在一个工作线程上开始并在另一个工作线程上完成?或者是否可以将工作线程交换到不同的方法调用,然后再返回?

我们使用默认的 ConcurrencyMode.Single 和 InstanceContextMode.PerSession。

编辑

到目前为止我能找到的唯一信息是这篇博文,其中指出一个调用可以由多个线程处理:

http://blogs.microsoft.co.il/blogs/applisec/archive/2009/11/23/wcf-thread-affinity-and-synchronization.aspx

这个人是对的吗? Microsoft 是否提供任何权威信息?

最佳答案

如果你不确定你总是可以使用 CallContext 类: CallContext.LogicalSetData CallContext.LogicalGetData

虽然如果线程发生变化,ThreadStatic 将无法工作,但 Logical CallContext 会在 .NET 中传递,即使您创建自己的新线程/任务也是如此。

关于wcf - ThreadStatic - WCF 方法调用是否只在单个线程上执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262979/

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