Dictionary<TKey,TValue>.ICollection.SyncRoot 속성

정의

ICollection에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.Gets an object that can be used to synchronize access to the ICollection.

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

속성 값

ICollection에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.An object that can be used to synchronize access to the ICollection.

구현

설명

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. 열거 동안 스레드 보안을 보장하려면 전체 열거 동안 컬렉션을 잠그면 됩니다.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. 여러 스레드에서 컬렉션에 액세스하여 읽고 쓸 수 있도록 허용하려면 사용자 지정 동기화를 구현해야 합니다.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

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. 다음 코드에서는, C# C++및 Visual Basic에 대 한 SyncRoot 속성을 사용 하는 방법을 보여 줍니다.The following code shows the use of the SyncRoot property for C#, C++, and 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);  
}  

이 속성의 값을 가져오는 것은 o (1) 작업입니다.Getting the value of this property is an O(1) operation.

적용 대상

추가 정보