SqlParameterCollection.IsSynchronized Egenskap

Definition

Hämtar ett värde som anger om synkroniseras SqlParameterCollection .

public:
 virtual property bool IsSynchronized { bool get(); };
public override bool IsSynchronized { get; }
member this.IsSynchronized : bool
Public Overrides ReadOnly Property IsSynchronized As Boolean

Egenskapsvärde

trueom är SqlParameterCollection synkroniserad, annars . false

Kommentarer

Den här medlemmen är en explicit implementering av gränssnittsmedlemmar. Den kan endast användas när instansen SqlParameterCollection skickas till ett ICollection gränssnitt.

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.

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

ICollection^ myCollection = someCollection;
bool lockTaken = false;
try
{
    Monitor::Enter(myCollection->SyncRoot, lockTaken);
    for each (Object^ item in myCollection);
    {
        // Insert your code here.
    }
}
finally
{
    if (lockTaken)
    {
        Monitor::Exit(myCollection->SyncRoot);
    }
}
ICollection myCollection = someCollection;
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As ICollection = someCollection
SyncLock myCollection.SyncRoot
    For Each item In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Gäller för

Se även