BitArray.SyncRoot Właściwość

Definicja

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

public:
 property System::Object ^ SyncRoot { System::Object ^ get(); };
public object SyncRoot { get; }
member this.SyncRoot : obj
Public ReadOnly Property SyncRoot As Object

Wartość właściwości

Obiekt, który może służyć do synchronizowania dostępu do obiektu BitArray.

Implementuje

Przykłady

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

BitArray^ myCollection = gcnew BitArray(64, true);
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);
    }
}
BitArray myCollection = new BitArray(64, true);
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New BitArray(64, true)
SyncLock myCollection.SyncRoot
    For Each item In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Pobieranie wartości tej właściwości jest operacją O(1) .

Uwagi

Klasy pochodne mogą udostępniać własną zsynchronizowaną wersję BitArray obiektu przy użyciu SyncRoot właściwości . Synchronizowanie kodu musi wykonywać operacje na obiekcie SyncRootBitArray, a nie bezpośrednio w obiekcie BitArray. Gwarantuje to prawidłowe funkcjonowanie kolekcji, które są uzyskiwane z innych obiektów. W szczególności utrzymuje właściwą synchronizację z innymi wątkami, które mogą jednocześnie modyfikować BitArray obiekt.

Wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. 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.

Dotyczy

Zobacz też