Udostępnij za pośrednictwem


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

Definicja

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

property bool System::Collections::ICollection::IsSynchronized { bool get(); };
bool System.Collections.ICollection.IsSynchronized { get; }
member this.System.Collections.ICollection.IsSynchronized : bool
 ReadOnly Property IsSynchronized As Boolean Implements ICollection.IsSynchronized

Wartość właściwości

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

Implementuje

Uwagi

SyncRoot Metoda 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ę Synchronized, która zapewnia zsynchronizowaną otokę wokół bazowej kolekcji.

Wyliczanie za pomocą kolekcji 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żna zablokować kolekcję podczas całego procesu wyliczania albo rejestrować wyjątki wynikłe ze zmian wprowadzanych przez inne wątków.

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

ICollection myCollection = new ICollection();  
  lock(myCollection.SyncRoot) {  
  foreach (Object item in myCollection) {  
  // Insert your code here.  
  }  
 }  
Dim myCollection As New ICollection()  
 Dim item As Object  
 SyncLock myCollection.SyncRoot  
  For Each item In myCollection  
  ' Insert your code here.  
  Next item  
 End SyncLock  

Dotyczy

Zobacz też