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

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에서 상속됨)
Public 메서드정적 멤버ExitAllFrames중첩된 프레임을 포함하여 모든 프레임을 종료하도록 요청합니다.
Public 메서드정적 멤버FromThread지정된 스레드에 대한 Dispatcher를 가져옵니다.
Public 메서드GetHashCode기본 해시 함수로 작동합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드Invoke(Action)지정 된 실행 Action 스레드에서 동기적으로 Dispatcher 와 관련 된.
Public 메서드Invoke(Action, DispatcherPriority)지정 된 실행 Action 스레드에서 지정 된 우선 순위로 동기적으로 Dispatcher 와 관련 된.
Public 메서드Invoke(Delegate, Object[]) Dispatcher 가 연결된 스레드에서 지정된 인수를 사용하여 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(DispatcherPriority, Delegate) Dispatcher 가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
Public 메서드Invoke(Action, DispatcherPriority, CancellationToken)지정 된 실행 Action 스레드에서 지정 된 우선 순위로 동기적으로 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(Action, DispatcherPriority, CancellationToken, TimeSpan)지정 된 실행 Action 스레드에서 지정 된 우선 순위로 동기적으로 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 메서드Invoke<TResult>(Func<TResult>)지정 된 실행 Func<TResult> 스레드에서 동기적으로 Dispatcher 와 관련 된.
Public 메서드Invoke<TResult>(Func<TResult>, DispatcherPriority)지정 된 실행 Func<TResult> 스레드에서 지정 된 우선 순위로 동기적으로 Dispatcher 와 관련 된.
Public 메서드Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)지정 된 실행 Func<TResult> 스레드에서 지정 된 우선 순위로 동기적으로 Dispatcher 와 관련 된.
Public 메서드Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)지정 된 실행 Func<TResult> 스레드에서 지정 된 우선 순위로 동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeAsync(Action)지정 된 실행 Action 스레드에서 비동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeAsync(Action, DispatcherPriority)지정 된 실행 Action 스레드에서 지정 된 우선 순위에 비동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeAsync(Action, DispatcherPriority, CancellationToken)지정 된 실행 Action 스레드에서 지정 된 우선 순위에 비동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeAsync<TResult>(Func<TResult>)지정 된 실행 Func<TResult> 스레드에서 비동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeAsync<TResult>(Func<TResult>, DispatcherPriority)지정 된 실행 Func<TResult> 스레드에서 지정 된 우선 순위에 비동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)지정 된 실행 Func<TResult> 스레드에서 지정 된 우선 순위로 동기적으로 Dispatcher 와 관련 된.
Public 메서드InvokeShutdown Dispatcher 의 종료 프로세스를 동기적으로 시작합니다.
Public 메서드정적 멤버PushFrame실행 루프로 들어갑니다.
Public 메서드정적 멤버Run Dispatcher 의 이벤트 큐에서 기본 실행 프레임을 푸시합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드정적 멤버ValidatePriority지정된 DispatcherPriority가 유효한 우선 순위인지 여부를 확인합니다.
Public 메서드VerifyAccess호출 스레드가 이 Dispatcher에 액세스할 수 있는지 여부를 확인합니다.
Public 메서드정적 멤버Yield()비동기적으로 현재 발송자가 컨트롤을 생성 하 고 다른 이벤트를 처리 하 여 발송자에 대 한 기회를 제공 하는 awaitable 개체를 만듭니다.
Public 메서드정적 멤버Yield(DispatcherPriority)비동기적으로 현재 발송자가 컨트롤을 생성 하 고 다른 이벤트를 처리 하 여 발송자에 대 한 기회를 제공 하는 awaitable 개체를 만듭니다. 이 메서드의 결과를 기다리는 코드에 제어를 반환할 때 발생 하는 작업에 지정 된 우선 순위를 가진 예정입니다.
위쪽

  이름설명
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, TimeSpan)오버로드되었습니다. 스레드에서 지정 된 대리자를 동기적으로 실행 하는 지정 된 Dispatcher 을 만들었기 때문에 지정 된 제한 시간 후에 실행을 중지 합니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드Invoke(Action, DispatcherPriority)오버로드되었습니다. 스레드에서 지정 된 대리자를 동기적으로 지정 된 우선 순위를 가진 실행에 지정 된 Dispatcher 에서 만들어졌습니다. (DispatcherExtensions에서 정의됨)
Public 확장 메서드Invoke(Action, TimeSpan, DispatcherPriority)오버로드되었습니다. 스레드에서 지정 된 대리자를 동기적으로 지정 된 우선 순위를 가진 실행에 지정 된 Dispatcher 을 만들었기 때문에 지정 된 제한 시간 후에 실행을 중지 합니다. (DispatcherExtensions에서 정의됨)
위쪽

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

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

현재 스레드에 대한 CurrentDispatcher를 가져오려고 하는데 Dispatcher가 스레드에 연결되어 있지 않은 경우 Dispatcher가 만들어집니다. A Dispatcher 사용자를 만들 때에 만들어집니다는 DispatcherObject. 자신이 만든 경우는 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 void NextPrimeDelegate();


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


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


.NET Framework

4.5, 4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

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

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

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft