Dictionary<TKey,TValue>.KeyCollection.ICollection.SyncRoot 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
속성 값
ICollection에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다. Dictionary<TKey,TValue>.KeyCollection의 기본 구현에서 이 속성은 언제나 현재 인스턴스를 반환합니다.
구현
설명
의 컬렉션의 기본 구현은 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) 연산입니다.
적용 대상
추가 정보
.NET