(询问this related question后,我仍然有一个问题。)C#懒惰<T>&Race-to-initialize?
整个想法(据我所知)与Lazy<T>
,是创建对象只有当我们需要它。 为什么?因为创造它是昂贵的。
该最后事情我想要的是,Expensive
对象将被创建>1
次。
我不在乎是否许多线程最终会产生相同的参考。我只是不希望他们创建多个实例。
所以Lazyinitializer
处理这个由syncLock
:
LazyInitializer.EnsureInitialized (ref _expensive, ref useless, ref _sync,() => new Expensive());
但如何能Lazy<T>
处理呢? 我在MSDN中搜索并没有找到任何syncLock
过载...
我错过了什么?
虽然它使用监视器,但它不会这样做,我会称之为“简单”方式。 –
注意:)更新.... – BFree