문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Array.SyncRoot 속성

Array 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

public Object SyncRoot { get; }

속성 값

형식: System.Object
Array 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.

구현

ICollection.SyncRoot

이 속성은 System.Collections.ICollection 인터페이스를 구현합니다.

Array 을 기반으로 하는 .NET Framework 클래스에서는 SyncRoot 속성을 사용하여 해당 컬렉션의 자체 동기화 버전을 제공합니다.

배열을 사용하는 클래스에서도 SyncRoot 속성을 사용하여 자체 동기화를 구현할 수 있습니다. 동기화 코드는 컬렉션에서 직접 수행되지 않고 해당 컬렉션의 SyncRoot에서 수행되어야 합니다. 이렇게 하면 다른 개체에서 파생된 컬렉션에 대해 적절한 작업을 수행할 수 있습니다. 특히 해당 컬렉션을 동시에 수정하는 다른 스레드와 적절하게 동기화할 수 있습니다. SyncRoot 를 구현하는 경우 Array 자체가 반환될 수도 있습니다.

컬렉션을 열거하는 프로시저는 기본적으로 스레드로부터 안전하지 않습니다. 컬렉션이 동기화되어 있을 때 다른 스레드에서 해당 컬렉션을 수정할 수 있으므로 이렇게 되면 열거자에서 예외가 throw됩니다. 열거하는 동안 스레드로부터 안전을 보장하려면 전체 열거를 수행하는 동안 컬렉션을 잠그거나 다른 스레드에서 변경된 내용으로 인해 발생한 예외를 catch하면 됩니다.

이 속성의 값을 검색하는 것은 O(1) 연산입니다.

다음 코드 예제에서는 SyncRoot 속성을 사용하여 전체 열거를 수행하는 동안 배열을 잠그는 방법을 보여 줍니다.


Array myArray = new int[] { 1, 2, 4 };
lock (myArray.SyncRoot)
{
   foreach (Object item in myArray)
      outputBlock.Text += item + "\n";
}


Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

XNA Framework

Xbox 360, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

추가
표시: