Collection<T>.ICollection.SyncRoot Collection<T>.ICollection.SyncRoot Collection<T>.ICollection.SyncRoot Property

정의

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. Collection<T>의 기본 구현에서 이 속성은 언제나 현재 인스턴스를 반환합니다.In the default implementation of Collection<T>, this property always returns the current instance.

구현

설명

컬렉션의 기본 구현은 System.Collections.Generic 동기화 되지 않습니다.Default implementations of collections in System.Collections.Generic 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합니다.SyncRoot returns an object that can be used to synchronize access to the ICollection. 동기화는 모든 스레드에서 컬렉션에 액세스 하기 전에이 개체를 잠그는 경우에 유효 합니다.Synchronization is effective only if all threads lock this object before accessing the collection. 다음 코드의 사용을 보여 줍니다.는 SyncRoot C#, c + + 및 Visual Basic에 대 한 속성입니다.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) 연산입니다.Retrieving the value of this property is an O(1) operation.

적용 대상

추가 정보