Bagikan melalui


Collection<T>.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. Dalam implementasi Collection<T>default , properti ini selalu mengembalikan instans saat ini.

Penerapan

Keterangan

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

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.

SyncRoot mengembalikan objek yang dapat digunakan untuk menyinkronkan akses ke ICollection. Sinkronisasi hanya efektif jika semua utas mengunci objek ini 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);
}

Mengambil nilai properti ini adalah operasi O(1).

Berlaku untuk

Lihat juga