내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

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에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft