Lazy<T>.IsValueCreated Özellik

Tanım

Bu Lazy<T> örnek için bir değer oluşturulup oluşturulmadığını belirten bir değer alır.

public:
 property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean

Özellik Değeri

true bu Lazy<T> örnek için bir değer oluşturulduysa; değilse, false.

Açıklamalar

Bir Lazy<T> örnek için gecikmeli başlatma gerçekleştiğinde, bir değerin oluşturulmasına veya özel durumun oluşturulmasına neden olabilir. Bir özel durum oluşturulursa, örneğin sonraki davranışı özel durum önbelleğinin Lazy<T> etkin olup olmamasına bağlıdır. Lazy<T> Örnek bir başlatma işlevi belirtmeyen bir oluşturucu kullanılarak oluşturulduysa, özel durum önbelleğe alma etkin değildir. sonraki başlatma Lazy<T> girişimi başarılı olabilir ve başarılı bir başlatmadan IsValueCreated sonra özelliği döndürür true. Lazy<T> Örnek bir başlatma işleviyle oluşturulduysa (oluşturucunun valueFactoryLazy<T> parametresi tarafından belirtilir), özel durum önbelleğe alma iş parçacığı güvenlik modu tarafından denetlenır.

  • Mod veya LazyThreadSafetyMode.Noneise LazyThreadSafetyMode.ExecutionAndPublication örneği başlatmak Lazy<T> için ikinci bir şans yoktur. Bir özel durum oluşursa ve başlatma işlevinde işlenmemişse, bu özel durum önbelleğe alınır ve özelliğin Lazy<T>.Value sonraki erişimlerinde yeniden oluşturulur. Özel durum oluşturulursa hiçbir değer oluşturulmaz, bu nedenle bu gibi durumlarda IsValueCreated döndürür false.

  • Mod ise LazyThreadSafetyMode.PublicationOnly, başlatma işlevini (veya parametresiz oluşturucuyu) çalıştırmayı başaran ilk iş parçacığı, örneğin değerini Lazy<T> oluşturur. Başlatma işlevi bir iş parçacığında özel durum oluşturursa, diğer iş parçacıkları yine de örneği başlatmayı Lazy<T> deneyebilir. Değer oluşturulana IsValueCreated kadar özelliği döndürür false.

Şunlara uygulanır

Ayrıca bkz.