SearchResultCollection.ICollection.IsSynchronized Egenskap

Definition

Hämtar ett värde som anger om åtkomsten ICollection till är synkroniserad (trådsäker).

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

Egenskapsvärde

trueom åtkomsten ICollection till är synkroniserad (trådsäker), annars . false

Implementeringar

Kommentarer

SyncRoot returnerar ett objekt som kan användas för att synkronisera åtkomsten ICollectiontill .

De flesta samlingsklasser i System.Collections namnområdet implementerar också en synkroniserad metod som ger en synkroniserad omslutning runt den underliggande samlingen.

Att räkna upp genom en samling är i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.

Följande kodexempel visar hur du låser samlingen med hela SyncRoot uppräkningen:

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

Gäller för

Se även