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

정의

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

속성 값

Object

ICollection에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.

구현

설명

System.Collections.Generic 네임스페이스에서 컬렉션의 기본 구현은 동기화되지 않습니다.

컬렉션 전체를 열거하는 프로시저는 기본적으로 스레드로부터 안전하지 않습니다. 열거 동안 스레드 보안을 보장하려면 전체 열거 동안 컬렉션을 잠그면 됩니다. 여러 스레드에서 컬렉션에 액세스하여 읽고 쓸 수 있도록 허용하려면 사용자 지정 동기화를 구현해야 합니다.

이 속성은 SyncRoot 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 반환합니다 ICollection. 동기화는 컬렉션에 액세스하기 전에 모든 스레드가 개체를 잠그는 경우에만 유효합니다. 다음 코드에서는 C#, C++및 Visual Basic 속성의 SyncRoot 사용을 보여 있습니다.

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) 작업입니다.

적용 대상

추가 정보