(この関連する質問 をした後、まだ質問があります。 )
の全体的なアイデア(AFAIK)は、必要なときにのみLazy<T>
オブジェクトを作成することです。なんで ?作るのにお金がかかるからです。
私が望む最後のことは、Expensive
オブジェクトが>1
何度も作成されることです。
多くのスレッドが最終的に同じ参照を生成するかどうかは気にしません。私は彼らに複数のインスタンスを作成させたくないだけです。
したがって、Lazyinitializer
これを次のように処理しsyncLock
ます。
LazyInitializer.EnsureInitialized (ref _expensive, ref useless, ref _sync, () => new Expensive());
しかし、どうすれLazy<T>
ばそれを処理できますか? msdn で検索しましたが、syncLock
オーバーロードが見つかりませんでした ...
何が欠けていますか?