PropertyCollection.ICollection.IsSynchronized Właściwość

Definicja

Pobiera wartość wskazującą, czy dostęp do elementu ICollection jest synchronizowany (bezpieczny wątek).

C#
bool System.Collections.ICollection.IsSynchronized { get; }

Wartość właściwości

true jeśli dostęp do elementu ICollection jest synchronizowany (bezpieczny wątkowy); w przeciwnym razie false.

Implementuje

Uwagi

SyncRoot zwraca obiekt, który może służyć do synchronizowania dostępu do obiektu ICollection.

Większość klas kolekcji w System.Collections przestrzeni nazw implementuje również metodę Syncd, która zapewnia zsynchronizowaną otokę wokół bazowej kolekcji.

Wyliczanie przez kolekcję nie jest wewnętrznie bezpieczną procedurą wątku. Nawet gdy kolekcja jest synchronizowana, inne wątki nadal mogą ją modyfikować. Powoduje to zgłaszanie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, możesz zablokować kolekcję podczas całej wyliczania lub przechwycić wyjątki wynikające ze zmian wprowadzonych przez inne wątki.

W poniższym przykładzie pokazano, jak zablokować kolekcję przy użyciu SyncRoot elementu w trakcie całego wyliczenia:

C#
ICollection myCollection = new ICollection();  
  lock(myCollection.SyncRoot) {  
  foreach (Object item in myCollection) {  
  // Insert your code here.  
  }  
 }  

Dotyczy

Produkt Wersje
.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
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Zobacz też