我使用valueFactory Func初始化我的ThreadLocal。
我还想有时将Value重置为null。
也许我做错了,但如果我设置我的threadLocal.Value = null,它似乎仍然认为threadLocal.IsValueCreated == true。
如何才能真正重置threadlocal,以便在被要求时懒惰地重新生成Value?
答案 0 :(得分:3)
不是我知道的。
您可以随时将其设为ThreadLocal<Lazy<T>>
,并在需要重置时将其设置为新的Lazy<T>
。如果这是您多次使用的内容,您可能需要考虑将其封装为ResettableThreadLocal<T>
或类似的内容。