Collection<T>.ICollection.SyncRoot Özellik

Tanım

erişimi ICollectioneşitlemek için kullanılabilecek bir nesnesi alır.

C#
object System.Collections.ICollection.SyncRoot { get; }

Özellik Değeri

öğesine erişimi ICollectioneşitlemek için kullanılabilecek bir nesne. varsayılan uygulamasında Collection<T>bu özellik her zaman geçerli örneği döndürür.

Uygulamalar

Açıklamalar

içindeki System.Collections.Generic koleksiyonların varsayılan uygulamaları eşitlenmez.

Bir koleksiyon ile numaralandırma, aslında iş parçacığı açısından güvenli yordam değildir. Numaralandırma sırasında iş parçacığı güvenliği sağlamak için tüm numaralandırma sırasında koleksiyonu kilitleyebilirsiniz. Okuma ve yazma için birden çok iş parçacığı tarafından erişilecek koleksiyona izin vermek için kendi eşitlemenizi uygulamalısınız.

SyncRoot , erişimi ICollectioneşitlemek için kullanılabilecek bir nesne döndürür. Eşitleme yalnızca koleksiyona erişmeden önce tüm iş parçacıklarının bu nesneyi kilitlemesi durumunda etkilidir. Aşağıdaki kod C#, C++ ve Visual Basic için özelliğinin SyncRoot kullanımını gösterir.

C#
ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}

Bu özelliğin değerini almak bir O(1) işlemidir.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.