SortedDictionary<TKey,TValue>.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.
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).