(在问了这个相关问题 之后,我还有一个问题。)
整个想法(AFAIK)是仅在需要时Lazy<T>创建对象。为什么 ?因为创建起来很昂贵。
我想要的最后一Expensive件事是该对象将被创建>1时间。
我不在乎是否许多线程最终会产生相同的引用。我只是不希望他们创建多个实例。
所以Lazyinitializer通过以下方式处理syncLock:
LazyInitializer.EnsureInitialized (ref _expensive, ref useless, ref _sync, () => new Expensive());
可是怎么Lazy<T>办呢?我在msdn中搜索过,找不到任何syncLock超载...
我错过了什么?