DictionaryBase.ICollection.IsSynchronized Egenskap

Definition

Hämtar ett värde som anger om åtkomsten till ett DictionaryBase objekt synkroniseras (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

true om åtkomsten DictionaryBase till objektet synkroniseras (trådsäkert), annars false. Standardvärdet är false.

Implementeringar

Exempel

I följande kodexempel visas hur du låser samlingen med hjälp av SyncRoot egenskapen under hela uppräkningen.

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

Att hämta värdet för den här egenskapen är en O(1) åtgärd.

Kommentarer

Ett DictionaryBase objekt synkroniseras inte. Härledda klasser kan tillhandahålla en synkroniserad version av klassen med hjälp av DictionaryBaseSyncRoot egenskapen .

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.

Gäller för

Se även