1
我正在使用CallContext.LogicalGetData为了跨异步代码共享信息。线程安全使用CallContext.LogicalSetData
我想在一个“线程安全”的方式执行这种调用:
var val = CallContext.LogicalGetData(key);
if(val==null)
{
CallContext.LogicalSetData(key, initialValue);
}
return val;
如何做到这一点任何想法?
你说得对,我不需要每个上下文锁,一个锁就够了=)谢谢! – David
由于性能原因,我认为在空检查后放置锁定甚至会更好。 – David
@大卫我不会那样做。读取变量也应该是线程安全的。 –