Bagikan melalui


SortedDictionary<TKey,TValue>.ICollection.SyncRoot Properti

Definisi

Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke ICollection.

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

Nilai Properti

Objek yang dapat digunakan untuk menyinkronkan akses ke ICollection.

Penerapan

Keterangan

Implementasi default koleksi di System.Collections.Generic namespace tidak disinkronkan.

Menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi. Untuk memungkinkan koleksi diakses oleh beberapa utas untuk membaca dan menulis, Anda harus menerapkan sinkronisasi Anda sendiri.

Properti ICollection.SyncRoot mengembalikan objek yang dapat digunakan untuk menyinkronkan akses ke ICollection. Sinkronisasi hanya efektif jika semua utas mengunci objek sebelum mengakses koleksi. Kode berikut menunjukkan penggunaan SyncRoot properti untuk C#, C++, dan Visual Basic.

ICollection ic = ...;  
lock (ic.SyncRoot)   
{  
    // Access the collection.  
}  
Dim ic As ICollection = ...  
SyncLock ic.SyncRoot  
    ' Access the collection.  
End SyncLock  
ICollection^ ic = ...;  
try   
{  
    Monitor::Enter(ic->SyncRoot);  
    // Access the collection.  
}  
finally   
{  
    Monitor::Exit(ic->SyncRoot);  
}  

Mendapatkan nilai properti ini adalah operasi O(1).

Berlaku untuk

Lihat juga