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