Dictionary<TKey,TValue>.ICollection.IsSynchronized プロパティ


ICollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。Gets a value that indicates whether access to the ICollection is synchronized (thread safe).

property bool System::Collections::ICollection::IsSynchronized { bool get(); };
bool System.Collections.ICollection.IsSynchronized { get; }
 ReadOnly Property IsSynchronized As Boolean Implements ICollection.IsSynchronized


true へのアクセスが同期されている (スレッド セーフである) 場合は ICollection。それ以外の場合は falsetrue if access to the ICollection is synchronized (thread safe); otherwise, false. Dictionary<TKey,TValue> の既定の実装では、このプロパティは常に false を返します。In the default implementation of Dictionary<TKey,TValue>, this property always returns false.



System.Collections.Generic 名前空間のコレクションの既定の実装は同期されません。Default implementations of collections in the System.Collections.Generic namespace are not synchronized.

コレクションの列挙処理は、本質的にスレッドセーフな処理ではありません。Enumerating through a collection is intrinsically not a thread-safe procedure. コレクションが同期されている場合でも、他のスレッドでコレクションを変更できます。これにより、列挙子が例外をスローする可能性があります。Even when a collection is synchronized, other threads can still modify the collection, which can cause the enumerator to throw an exception. 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

SyncRoot プロパティは、ICollectionへのアクセスを同期するために使用できるオブジェクトを返します。The SyncRoot property returns an object that can be used to synchronize access to the ICollection. 同期は、コレクションにアクセスする前にすべてのスレッドがオブジェクトをロックする場合にのみ有効です。Synchronization is effective only if all threads lock the object before accessing the collection.

このプロパティの値の取得は O (1) 操作です。Getting the value of this property is an O(1) operation.