이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
Dispatcher 클래스
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

Dispatcher 클래스

스레드에 대한 작업 항목 큐를 관리하는 서비스를 제공합니다.

System.Object
  System.Windows.Threading.Dispatcher

네임스페이스:  System.Windows.Threading
어셈블리:  WindowsBase(WindowsBase.dll)

public sealed class Dispatcher

Dispatcher 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 속성정적 멤버CurrentDispatcher스레드에 연결된 Dispatcher가 없는 경우 현재 실행 중인 스레드에 대한 Dispatcher를 가져와서 새 Dispatcher를 만듭니다.
Public 속성HasShutdownFinished Dispatcher 가 완전히 종료되었는지 여부를 확인합니다.
Public 속성HasShutdownStarted Dispatcher 가 종료되었는지 여부를 확인합니다.
Public 속성Hooks Dispatcher 에 대한 추가 이벤트 정보를 제공하는 후크 컬렉션을 가져옵니다.
Public 속성ThreadDispatcher가 연결된 스레드를 가져옵니다.
위쪽

  이름설명
Public 메서드BeginInvoke(Delegate, Object[]) Dispatcher 가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.
Public 메서드BeginInvoke(DispatcherPriority, Delegate) Dispatcher 가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.
Public 메서드BeginInvoke(Delegate, DispatcherPriority, Object[]) Dispatcher 가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.
Public 메서드BeginInvoke(DispatcherPriority, Delegate, Object) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.
Public 메서드BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.
Public 메서드BeginInvokeShutdown비동기적으로 Dispatcher 종료를 시작합니다.
Public 메서드CheckAccess호출 스레드가 이 Dispatcher에 연결된 스레드인지 여부를 확인합니다.
Public 메서드DisableProcessing Dispatcher 큐 프로세스를 비활성화합니다.
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 여부를 확인합니다. (Object에서 상속됨)
Public 메서드정적 멤버ExitAllFrames중첩된 프레임을 포함하여 모든 프레임을 종료하도록 요청합니다.
Protected 메서드Finalize 개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드정적 멤버FromThread지정된 스레드에 대한 Dispatcher를 가져옵니다.
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드Invoke(Delegate, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, Delegate) Dispatcher 가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(Delegate, TimeSpan, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위의 지정된 기간 내에서 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(Delegate, DispatcherPriority, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, Delegate, Object) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, TimeSpan, Delegate) Dispatcher 가 만들어진 스레드에서 지정된 제한 시간 값을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위의 지정된 기간 내에서 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, Delegate, Object, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, TimeSpan, Delegate, Object) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드InvokeShutdown Dispatcher 의 종료 프로세스를 동기적으로 시작합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버PushFrame실행 루프로 들어갑니다.
Public 메서드정적 멤버Run Dispatcher 의 이벤트 큐에서 기본 실행 프레임을 푸시합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드정적 멤버ValidatePriority지정된 DispatcherPriority가 유효한 우선 순위인지 여부를 확인합니다.
Public 메서드VerifyAccess호출 스레드가 이 Dispatcher에 액세스할 수 있는지 여부를 확인합니다.
위쪽

  이름설명
Public 이벤트ShutdownFinished Dispatcher 가 종료되면 발생합니다.
Public 이벤트ShutdownStarted Dispatcher 가 종료되기 시작하면 발생합니다.
Public 이벤트UnhandledException Invoke 또는 BeginInvoke를 통해 대리자를 실행하는 동안 스레드 예외가 throw되고 catch되지 않으면 발생합니다.
Public 이벤트UnhandledExceptionFilter필터 단계에서 Invoke 또는 BeginInvoke를 통해 대리자를 실행하는 동안 스레드 예외가 throw되고 catch되지 않으면 발생합니다.
위쪽

  이름설명
Public 확장 메서드BeginInvoke(Action)오버로드되었습니다. 지정된 Dispatcher가 만들어진 스레드에서 보통 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드BeginInvoke(Action, DispatcherPriority)오버로드되었습니다. 지정된 Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드Invoke(Action)오버로드되었습니다. 지정된 Dispatcher가 만들어진 스레드에서 보통 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드Invoke(Action, DispatcherPriority)오버로드되었습니다. 지정된 Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드Invoke(Action, TimeSpan)오버로드되었습니다. 지정된 Dispatcher가 만들어진 스레드에서 지정된 대리자를 동기적으로 실행하고 지정된 제한 시간 후에 실행을 중지합니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드Invoke(Action, TimeSpan, DispatcherPriority)오버로드되었습니다. 지정된 Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행하고 지정된 제한 시간 후에 실행을 중지합니다. (DispatcherExtensions에서 정의됨)
위쪽

Dispatcher 는 특정 스레드에 대해 우선 순위가 지정된 작업 항목 큐를 관리합니다.

스레드에서 만들어진 DispatcherDispatcher가 종료되더라도 스레드에 연결할 수 있는 유일한 Dispatcher가 됩니다.

현재 스레드에 대한 CurrentDispatcher를 가져오려고 하는데 Dispatcher가 스레드에 연결되어 있지 않은 경우 Dispatcher가 만들어집니다.

Dispatcher 가 종료되면 다시 시작할 수 없습니다.

WPF에서 DispatcherObject는 연결된 Dispatcher에서만 액세스할 수 있습니다. 예를 들어 백그라운드 스레드는 UI 스레드의 Dispatcher에 연결된 Button의 내용을 업데이트할 수 없습니다. 백그라운드 스레드에서 ButtonContent 속성에 액세스할 수 있도록 하려면 백그라운드 스레드에서 UI 스레드에 연결된 Dispatcher에 작업을 위임해야 합니다. 이 작업은 Invoke 또는 BeginInvoke를 사용하여 수행할 수 있습니다. Invoke는 동기적이고 BeginInvoke는 비동기적입니다. 작업은 지정된 DispatcherPriorityDispatcher 큐에 추가됩니다.

BeginInvoke 가 종료된 Dispatcher에 대해 호출되는 경우 반환되는 DispatcherOperation의 상태 속성은 Aborted로 설정됩니다.

DisableProcessing 을 제외하고 Dispatcher의 모든 메서드는 자유 스레드됩니다.

DispatcherObject 에서 파생되는 개체에는 스레드 선호도가 있습니다.

Freezable 에서 파생되는 개체는 고정될 때 자유 스레드됩니다. 자세한 내용은 Freezable 개체 개요을 참조하십시오.

다음 예제에서는 Dispatcher에 작업을 배치하는 방법을 보여 줍니다. 이 샘플의 전체 소스 코드를 보려면 Single-Threaded Application with Long-Running Calculation 샘플을 참조하십시오.

먼저 인수가 없는 대리자를 만듭니다.


Public Delegate Sub NextPrimeDelegate()



public delegate void NextPrimeDelegate();


다음으로 BeginInvoke(DispatcherPriority, Delegate)를 호출합니다. BeginInvoke(DispatcherPriority, Delegate) 를 호출할 때는 DispatcherPriority.Normal로 설정되는 우선 순위와 대리자 NextPrimeDelegate의 인스턴스를 통해 전달되는 콜백에 해당하는 매개 변수 두 개를 사용합니다.


startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))



startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));


.NET Framework

4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

커뮤니티 추가 항목

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

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