List<T>.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에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다. List<T>의 기본 구현에서 이 속성은 언제나 현재 인스턴스를 반환합니다.
구현
설명
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) 연산입니다.
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET