다음을 통해 공유


SqlParameterCollection.IsSynchronized 속성

정의

동기화되는지 여부를 SqlParameterCollection 나타내는 값을 가져옵니다.

public:
 virtual property bool IsSynchronized { bool get(); };
public override bool IsSynchronized { get; }
member this.IsSynchronized : bool
Public Overrides ReadOnly Property IsSynchronized As Boolean

속성 값

동기화되면 이고, 그렇지 않으면 .입니다.

설명

이 멤버는 명시적 인터페이스 멤버 구현입니다. 인스턴스가 인터페이스로 SqlParameterCollection 캐스팅 ICollection 되는 경우에만 사용할 수 있습니다.

SyncRoot 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 ICollection반환합니다. 네임스페이 System.Collections 스의 대부분의 컬렉션 클래스는 기본 컬렉션 주위에 동기화된 래퍼를 제공하는 Synchronized 메서드를 구현합니다.

컬렉션을 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다. 컬렉션이 동기화된 경우에도 다른 스레드는 컬렉션을 수정할 수 있으므로 열거자가 예외를 throw합니다. 열거 중 스레드 안전을 보장하기 위해 전체 열거 중에 컬렉션을 잠그거나 다른 스레드의 변경으로 인한 예외를 catch할 수 있습니다.

다음 코드 예제에서는 전체 열거 하는 동안 속성을 사용 하 여 SyncRoot 컬렉션을 잠그는 방법을 보여 있습니다.

ICollection^ myCollection = someCollection;
bool lockTaken = false;
try
{
    Monitor::Enter(myCollection->SyncRoot, lockTaken);
    for each (Object^ item in myCollection);
    {
        // Insert your code here.
    }
}
finally
{
    if (lockTaken)
    {
        Monitor::Exit(myCollection->SyncRoot);
    }
}
ICollection myCollection = someCollection;
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As ICollection = someCollection
SyncLock myCollection.SyncRoot
    For Each item In myCollection
        ' Insert your code here.
    Next item
End SyncLock

적용 대상

추가 정보