다음을 통해 공유


Dispatcher.BeginInvoke 메서드

정의

Dispatcher가 연결된 스레드에서 대리자를 비동기적으로 실행합니다.

오버로드

BeginInvoke(Delegate, Object[])

Dispatcher가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.

BeginInvoke(DispatcherPriority, Delegate)

Dispatcher가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.

BeginInvoke(Delegate, DispatcherPriority, Object[])

Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.

BeginInvoke(DispatcherPriority, Delegate, Object)

Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.

BeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Dispatcher가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.

설명

WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.

BeginInvokeDispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.

반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.

  • 이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경

  • 이벤트 큐에서 대리자를 제거합니다.

  • 대리자가 돌아올 때까지 기다립니다.

  • 대리자가 실행된 후 반환하는 값을 가져옵니다.

여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.

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

BeginInvoke(Delegate, Object[])

Dispatcher가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.

public:
 System::Windows::Threading::DispatcherOperation ^ BeginInvoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public System.Windows.Threading.DispatcherOperation BeginInvoke (Delegate method, params object[] args);
member this.BeginInvoke : Delegate * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (method As Delegate, ParamArray args As Object()) As DispatcherOperation

매개 변수

method
Delegate

args에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.

args
Object[]

주어진 메서드에 인수로 전달하는 개체의 배열입니다. null일 수 있습니다.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.

설명

반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.

  • 이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경

  • 이벤트 큐에서 대리자를 제거합니다.

  • 대리자가 돌아올 때까지 기다립니다.

  • 대리자가 실행된 후 반환하는 값을 가져옵니다.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.

WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.

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

적용 대상

BeginInvoke(DispatcherPriority, Delegate)

Dispatcher가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.

public:
 System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate) As DispatcherOperation

매개 변수

priority
DispatcherPriority

지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.

method
Delegate

인수가 없는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.

특성

예외

method이(가) null인 경우

priority은 유효한 DispatcherPriority이 아닙니다.

예제

다음 예제에서는 작업을 .에 Dispatcher배치하는 방법을 보여줍니다. 이 예제의 전체 소스 코드를 보려면 장기 실행 계산 샘플을 사용 하 여 단일 스레드 애플리케이션합니다.

먼저 인수를 허용하지 않는 대리자가 만들어집니다.

public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()

다음으로 호출 BeginInvoke(DispatcherPriority, Delegate) 됩니다. 모든 DispatcherObject 항목에는 연결된 속성을 반환 Dispatcher 하는 속성이 있으므로 원하는 Dispatcher 속성은 이 경우 Button 명명startStopButton된 속성을 쿼리하여 DispatcherObject가져옵니다. 호출 BeginInvoke(DispatcherPriority, Delegate) 은 두 개의 매개 변수를 사용합니다. 즉, 우선 순위로 설정된 DispatcherPriority.Normal우선 순위와 대리자의 NextPrimeDelegate인스턴스를 통해 전달되는 콜백입니다.

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

설명

여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.

BeginInvokeDispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.

반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.

  • 이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경

  • 이벤트 큐에서 대리자를 제거합니다.

  • 대리자가 돌아올 때까지 기다립니다.

  • 대리자가 실행된 후 반환하는 값을 가져옵니다.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.

WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.

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

추가 정보

적용 대상

BeginInvoke(Delegate, DispatcherPriority, Object[])

Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.

public:
 System::Windows::Threading::DispatcherOperation ^ BeginInvoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public System.Windows.Threading.DispatcherOperation BeginInvoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.BeginInvoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As DispatcherOperation

매개 변수

method
Delegate

args에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.

priority
DispatcherPriority

지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.

args
Object[]

주어진 메서드에 인수로 전달하는 개체의 배열입니다. null일 수 있습니다.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.

설명

반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.

  • 이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경

  • 이벤트 큐에서 대리자를 제거합니다.

  • 대리자가 돌아올 때까지 기다립니다.

  • 대리자가 실행된 후 반환하는 값을 가져옵니다.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.

WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.

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

적용 대상

BeginInvoke(DispatcherPriority, Delegate, Object)

Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.

public:
 System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate, arg As Object) As DispatcherOperation

매개 변수

priority
DispatcherPriority

지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.

method
Delegate

인수를 하나 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.

arg
Object

지정된 메서드에 인수로 전달하는 개체입니다.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.

특성

예외

method이(가) null인 경우

priority은 유효한 DispatcherPriority이 아닙니다.

예제

다음 예제에서는 작업을 .에 Dispatcher배치하는 방법을 보여줍니다.

먼저 하나의 인수(이 경우 문자열)를 허용하는 대리자가 만들어집니다.

private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)

다음으로 호출 BeginInvoke(DispatcherPriority, Delegate, Object) 됩니다. 모든 DispatcherObject 항목에는 연결된 속성을 반환 Dispatcher 하는 속성이 있으므로 원하는 Dispatcher 속성은 이 경우 Grid 명명tomorrowsWeather된 속성을 쿼리하여 DispatcherObject가져옵니다. 호출 BeginInvoke(DispatcherPriority, Delegate, Object) 은 세 가지 매개 변수를 사용합니다. 우선 순위는 DispatcherPriority.Normal대리자의 OneArgDelegate인스턴스를 통해 전달되는 콜백, 콜백에 대한 인수인 명명 weather된 문자열입니다.

// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
    System.Windows.Threading.DispatcherPriority.Normal,
    new OneArgDelegate(UpdateUserInterface), 
    weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)

설명

arg``null 는 인수가 필요하지 않은 경우일 수 있습니다.

BeginInvokeDispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.

반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.

  • 이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경

  • 이벤트 큐에서 대리자를 제거합니다.

  • 대리자가 돌아올 때까지 기다립니다.

  • 대리자가 실행된 후 반환하는 값을 가져옵니다.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.

WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 콘텐츠 속성 Button에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.

여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.

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

추가 정보

적용 대상

BeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Dispatcher가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.

public:
 System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As DispatcherOperation

매개 변수

priority
DispatcherPriority

지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.

method
Delegate

인수를 여러 개 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.

arg
Object

지정된 메서드에 인수로 전달하는 개체입니다.

args
Object[]

지정된 메서드에 인수로 전달하는 개체의 배열입니다.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, Dispatcher 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.

특성

예외

method이(가) null인 경우

DispatcherPriority가 올바른 속성이 아닌 경우

설명

매개 변수는 arg 인수가 필요하지 않은 경우일 null 수 있습니다.

BeginInvokeDispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.

반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.

  • 이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경

  • 이벤트 큐에서 대리자를 제거합니다.

  • 대리자가 돌아올 때까지 기다립니다.

  • 대리자가 실행된 후 반환하는 값을 가져옵니다.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.

WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.

여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.

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

추가 정보

적용 대상