ReadOnlyCollection<T>.ICollection.SyncRoot Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 ReadOnlyCollection<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#, Visual 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).
Anggota ini adalah implementasi anggota antarmuka eksplisit. Ini hanya dapat digunakan ketika instans dilemparkan ReadOnlyCollection<T> ke IDisposable antarmuka.