C# /. NET 4.0'ın kullanılması, Lazy<T>
nesnesinin aşağıdaki gibi bildirilebilir. LazyThreadSafetyMode
sıralamadanSystem.Lazy <T> ve System.Threading.LazyThreadSafetyMode Numaralandırması
using System;
using System.Threading;
...
var factory =() => { return new object(); };
var lazy = new Lazy<object>(factory, LazyThreadSafetyMode.ExecutionAndPublication);
Diğer seçenekler PublicationOnly
ve None
bulunmaktadır.
Neden hiç ExecutionOnly
seçeneği yoktur?
bu durumda davranış birden çok iş parçacığı lazy.Value
elde etmeye çalışmak bile, fabrika yöntemi tek bir iş parçacığı tarafından en fazla bir kere denir olurdu. fabrika yöntemi tamamlanmış ve tek sonuç önbelleğe sonra, bir çok parçacığı eşzamanlı olarak lazy.Value erişmek mümkün olur (yani, ilk fabrika yöntemi sonra bir iplik güvenlik).