Dispatcher.BeginInvoke 메서드

정의

Dispatcher가 연결된 스레드에서 대리자를 비동기적으로 실행합니다.Executes a delegate asynchronously on the thread the Dispatcher is associated with.

오버로드

BeginInvoke(Delegate, Object[])

Dispatcher가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate)

Dispatcher가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

BeginInvoke(Delegate, DispatcherPriority, Object[])

Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate, Object)

Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Dispatcher가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

설명

WPF에서는를 만든 스레드만 DispatcherObject 해당 개체에 액세스할 수 있습니다.In WPF, only the thread that created a DispatcherObject may access that object. 예를 들어, 주 UI 스레드에서 분리 된 백그라운드 스레드는 UI 스레드에 생성 된의 콘텐츠를 업데이트할 수 없습니다 Button .For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. 백그라운드 스레드가의 콘텐츠 속성에 액세스 하려면 Button 백그라운드 스레드에서 작업을 Dispatcher UI 스레드와 연결 된에 위임 해야 합니다.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. 이는 또는을 사용 하 여 수행 됩니다 Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke 는 동기 이며 BeginInvoke 비동기입니다.Invoke is synchronous and BeginInvoke is asynchronous. 작업은 지정 된에 있는의 이벤트 큐에 추가 됩니다 Dispatcher DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출 된 후에 호출 하는 개체에 즉시 반환 됩니다.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvokeDispatcherOperation대리자가 이벤트 큐에 있을 때 대리자와 상호 작용 하는 데 사용할 수 있는 개체를 반환 합니다.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation에서 반환 되는 개체는 다음과 같이 지정 된 BeginInvoke 대리자와 상호 작용 하는 여러 가지 방법으로 사용할 수 있습니다.The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • DispatcherPriority이벤트 큐에서 실행이 보류 중인 대리자의를 변경 합니다.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • 이벤트 큐에서 대리자를 제거 하는 중입니다.Removing the delegate from the event queue.

  • 대리자가 반환 될 때까지 기다리는 중입니다.Waiting for the delegate to return.

  • 대리자가 실행 된 후 반환 하는 값을 가져옵니다.Obtaining the value that the delegate returns after it is executed.

동일한에서 여러 번 BeginInvoke 호출 하는 경우 DispatcherPriority 호출이 수행 된 순서 대로 실행 됩니다.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

종료 된에 BeginInvoke 대해를 호출 하면 Dispatcher 반환 된의 상태 속성은 DispatcherOperation 로 설정 됩니다 Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(Delegate, Object[])

Dispatcher가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

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 이벤트 큐로 푸시됩니다.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

args
Object[]

주어진 메서드에 인수로 전달하는 개체의 배열입니다.An array of objects to pass as arguments to the given method. null일 수 있습니다.Can be null.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

설명

DispatcherOperation에서 반환 되는 개체는 다음과 같이 지정 된 BeginInvoke 대리자와 상호 작용 하는 여러 가지 방법으로 사용할 수 있습니다.The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • DispatcherPriority이벤트 큐에서 실행이 보류 중인 대리자의를 변경 합니다.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • 이벤트 큐에서 대리자를 제거 하는 중입니다.Removing the delegate from the event queue.

  • 대리자가 반환 될 때까지 기다리는 중입니다.Waiting for the delegate to return.

  • 대리자가 실행 된 후 반환 하는 값을 가져옵니다.Obtaining the value that the delegate returns after it is executed.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출 된 후에 호출 하는 개체에 즉시 반환 됩니다.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

WPF에서는를 만든 스레드만 DispatcherObject 해당 개체에 액세스할 수 있습니다.In WPF, only the thread that created a DispatcherObject may access that object. 예를 들어, 주 UI 스레드에서 분리 된 백그라운드 스레드는 UI 스레드에 생성 된의 콘텐츠를 업데이트할 수 없습니다 Button .For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. 백그라운드 스레드가의 콘텐츠 속성에 액세스 하려면 Button 백그라운드 스레드에서 작업을 Dispatcher UI 스레드와 연결 된에 위임 해야 합니다.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. 이는 또는을 사용 하 여 수행 됩니다 Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke 는 동기 이며 BeginInvoke 비동기입니다.Invoke is synchronous and BeginInvoke is asynchronous. 작업은 지정 된에 있는의 이벤트 큐에 추가 됩니다 Dispatcher DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

종료 된에 BeginInvoke 대해를 호출 하면 Dispatcher 반환 된의 상태 속성은 DispatcherOperation 로 설정 됩니다 Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

적용 대상

제품 Introduced

BeginInvoke(DispatcherPriority, Delegate)

Dispatcher가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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 입니다.The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.

method
Delegate

인수가 없는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

특성

예외

method이(가) null인 경우method is null.

priority은 유효한 DispatcherPriority이 아닙니다.priority is not a valid DispatcherPriority.

예제

다음 예제에서는 작업을에 저장 하는 방법을 보여 줍니다 Dispatcher .The following example shows how to place an operation onto a Dispatcher. 이 예제의 전체 소스 코드를 보려면 장기 실행 계산 샘플을 사용 하 여 단일 스레드 애플리케이션합니다.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

먼저 인수를 허용 하지 않는 대리자를 만듭니다.First, a delegate is created that accepts no arguments.

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

그런 다음를 BeginInvoke(DispatcherPriority, Delegate) 호출 합니다.Next, BeginInvoke(DispatcherPriority, Delegate) is called. 모든에는 DispatcherObject 와 연결 된를 반환 하는 속성이 있기 때문에 Dispatcher Dispatcher DispatcherObject ,이 경우에는 라는을 쿼리하여 원하는을 가져옵니다 Button startStopButton .Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Button named startStopButton. 호출에는 BeginInvoke(DispatcherPriority, Delegate) 두 개의 매개 변수, 즉로 설정 된 우선 순위 DispatcherPriority.Normal 와 대리자의 인스턴스를 통해 전달 되는 콜백이 사용 NextPrimeDelegate 됩니다.The call to BeginInvoke(DispatcherPriority, Delegate) takes two parameters: the priority, which is set to DispatcherPriority.Normal, and the callback, which is passed in through an instance of the delegate NextPrimeDelegate.

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

설명

동일한에서 여러 번 BeginInvoke 호출 하는 경우 DispatcherPriority 호출이 수행 된 순서 대로 실행 됩니다.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvokeDispatcherOperation대리자가 이벤트 큐에 있을 때 대리자와 상호 작용 하는 데 사용할 수 있는 개체를 반환 합니다.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation에서 반환 되는 개체는 다음과 같이 지정 된 BeginInvoke 대리자와 상호 작용 하는 여러 가지 방법으로 사용할 수 있습니다.The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • DispatcherPriority이벤트 큐에서 실행이 보류 중인 대리자의를 변경 합니다.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • 이벤트 큐에서 대리자를 제거 하는 중입니다.Removing the delegate from the event queue.

  • 대리자가 반환 될 때까지 기다리는 중입니다.Waiting for the delegate to return.

  • 대리자가 실행 된 후 반환 하는 값을 가져옵니다.Obtaining the value that the delegate returns after it is executed.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출 된 후에 호출 하는 개체에 즉시 반환 됩니다.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

WPF에서는를 만든 스레드만 DispatcherObject 해당 개체에 액세스할 수 있습니다.In WPF, only the thread that created a DispatcherObject may access that object. 예를 들어, 주 UI 스레드에서 분리 된 백그라운드 스레드는 UI 스레드에 생성 된의 콘텐츠를 업데이트할 수 없습니다 Button .For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. 백그라운드 스레드가의 콘텐츠 속성에 액세스 하려면 Button 백그라운드 스레드에서 작업을 Dispatcher UI 스레드와 연결 된에 위임 해야 합니다.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. 이는 또는을 사용 하 여 수행 됩니다 Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke 는 동기 이며 BeginInvoke 비동기입니다.Invoke is synchronous and BeginInvoke is asynchronous. 작업은 지정 된에 있는의 이벤트 큐에 추가 됩니다 Dispatcher DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

종료 된에 BeginInvoke 대해를 호출 하면 Dispatcher 반환 된의 상태 속성은 DispatcherOperation 로 설정 됩니다 Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

추가 정보

적용 대상

제품 Introduced

BeginInvoke(Delegate, DispatcherPriority, Object[])

Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

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 이벤트 큐로 푸시됩니다.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

priority
DispatcherPriority

지정 된 메서드가 호출 되는 이벤트 큐의 다른 보류 중인 작업을 기준으로 하는 우선 순위 Dispatcher 입니다.The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.

args
Object[]

주어진 메서드에 인수로 전달하는 개체의 배열입니다.An array of objects to pass as arguments to the given method. null일 수 있습니다.Can be null.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

설명

DispatcherOperation에서 반환 되는 개체는 다음과 같이 지정 된 BeginInvoke 대리자와 상호 작용 하는 여러 가지 방법으로 사용할 수 있습니다.The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • DispatcherPriority이벤트 큐에서 실행이 보류 중인 대리자의를 변경 합니다.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • 이벤트 큐에서 대리자를 제거 하는 중입니다.Removing the delegate from the event queue.

  • 대리자가 반환 될 때까지 기다리는 중입니다.Waiting for the delegate to return.

  • 대리자가 실행 된 후 반환 하는 값을 가져옵니다.Obtaining the value that the delegate returns after it is executed.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출 된 후에 호출 하는 개체에 즉시 반환 됩니다.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

WPF에서는를 만든 스레드만 DispatcherObject 해당 개체에 액세스할 수 있습니다.In WPF, only the thread that created a DispatcherObject may access that object. 예를 들어, 주 UI 스레드에서 분리 된 백그라운드 스레드는 UI 스레드에 생성 된의 콘텐츠를 업데이트할 수 없습니다 Button .For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. 백그라운드 스레드가의 콘텐츠 속성에 액세스 하려면 Button 백그라운드 스레드에서 작업을 Dispatcher UI 스레드와 연결 된에 위임 해야 합니다.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. 이는 또는을 사용 하 여 수행 됩니다 Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke 는 동기 이며 BeginInvoke 비동기입니다.Invoke is synchronous and BeginInvoke is asynchronous. 작업은 지정 된에 있는의 이벤트 큐에 추가 됩니다 Dispatcher DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

종료 된에 BeginInvoke 대해를 호출 하면 Dispatcher 반환 된의 상태 속성은 DispatcherOperation 로 설정 됩니다 Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

적용 대상

제품 Introduced

BeginInvoke(DispatcherPriority, Delegate, Object)

Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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 입니다.The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.

method
Delegate

인수를 하나 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.

arg
Object

지정된 메서드에 인수로 전달하는 개체입니다.The object to pass as an argument to the specified method.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

특성

예외

method이(가) null인 경우method is null.

priority은 유효한 DispatcherPriority이 아닙니다.priority is not a valid DispatcherPriority.

예제

다음 예제에서는 작업을에 저장 하는 방법을 보여 줍니다 Dispatcher .The following example shows how to place an operation onto a Dispatcher.

먼저 하나의 인수 (이 경우 문자열)를 허용 하는 대리자를 만듭니다.First, a delegate is created that accepts one argument, in this case a string.

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

그런 다음를 BeginInvoke(DispatcherPriority, Delegate, Object) 호출 합니다.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. 모든에는 DispatcherObject 와 연결 된를 반환 하는 속성이 있기 때문에 Dispatcher Dispatcher DispatcherObject ,이 경우에는 라는을 쿼리하여 원하는을 가져옵니다 Grid tomorrowsWeather .Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Grid named tomorrowsWeather. 에 대 한 호출은 BeginInvoke(DispatcherPriority, Delegate, Object) 세 개의 매개 변수를 사용 합니다. 우선 순위는로 설정 되 고, DispatcherPriority.Normal 대리자의 인스턴스를 통해 전달 되는 콜백이 OneArgDelegateweather , 콜백의 인수인 이라는 문자열을 사용 합니다.The call to BeginInvoke(DispatcherPriority, Delegate, Object) takes three parameters: the priority, which is set to DispatcherPriority.Normal; the callback, which is passed in through an instance of the delegate OneArgDelegate; and a string named weather, which is the argument for the callback.

// 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인수가 필요 하지 않은 경우 일 수 있습니다.arg can be null if no arguments are needed.

BeginInvokeDispatcherOperation대리자가 이벤트 큐에 있을 때 대리자와 상호 작용 하는 데 사용할 수 있는 개체를 반환 합니다.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation에서 반환 되는 개체는 다음과 같이 지정 된 BeginInvoke 대리자와 상호 작용 하는 여러 가지 방법으로 사용할 수 있습니다.The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • DispatcherPriority이벤트 큐에서 실행이 보류 중인 대리자의를 변경 합니다.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • 이벤트 큐에서 대리자를 제거 하는 중입니다.Removing the delegate from the event queue.

  • 대리자가 반환 될 때까지 기다리는 중입니다.Waiting for the delegate to return.

  • 대리자가 실행 된 후 반환 하는 값을 가져옵니다.Obtaining the value that the delegate returns after it is executed.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출 된 후에 호출 하는 개체에 즉시 반환 됩니다.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

WPF에서는를 만든 스레드만 DispatcherObject 해당 개체에 액세스할 수 있습니다.In WPF, only the thread that created a DispatcherObject may access that object. 예를 들어, 주 UI 스레드에서 분리 된 백그라운드 스레드는 UI 스레드에 생성 된의 콘텐츠를 업데이트할 수 없습니다 Button .For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. 백그라운드 스레드가의 콘텐츠 속성에 액세스 하려면 Button 백그라운드 스레드에서 작업을 Dispatcher UI 스레드와 연결 된에 위임 해야 합니다.In order for the background thread to access the content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. 이는 또는을 사용 하 여 수행 됩니다 Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke 는 동기 이며 BeginInvoke 비동기입니다.Invoke is synchronous and BeginInvoke is asynchronous. 작업은 지정 된에 있는의 이벤트 큐에 추가 됩니다 Dispatcher DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

동일한에서 여러 번 BeginInvoke 호출 하는 경우 DispatcherPriority 호출이 수행 된 순서 대로 실행 됩니다.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

종료 된에 BeginInvoke 대해를 호출 하면 Dispatcher 반환 된의 상태 속성은 DispatcherOperation 로 설정 됩니다 Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

추가 정보

적용 대상

제품 Introduced

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

Dispatcher가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

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 입니다.The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.

method
Delegate

인수를 여러 개 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.

arg
Object

지정된 메서드에 인수로 전달하는 개체입니다.The object to pass as an argument to the specified method.

args
Object[]

지정된 메서드에 인수로 전달하는 개체의 배열입니다.An array of objects to pass as arguments to the specified method.

반환

DispatcherOperation

BeginInvoke가 호출된 후 즉시 반환되며, Dispatcher 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the Dispatcher queue.

특성

예외

method이(가) null인 경우method is null.

DispatcherPriority가 올바른 속성이 아닌 경우DispatcherPriority is not a valid priority.

설명

arg인수가 필요 하지 않은 경우 매개 변수는이 될 수 있습니다 null .The arg parameter can be null if no arguments are needed.

BeginInvokeDispatcherOperation대리자가 이벤트 큐에 있을 때 대리자와 상호 작용 하는 데 사용할 수 있는 개체를 반환 합니다.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

DispatcherOperation에서 반환 되는 개체는 다음과 같이 지정 된 BeginInvoke 대리자와 상호 작용 하는 여러 가지 방법으로 사용할 수 있습니다.The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • DispatcherPriority이벤트 큐에서 실행이 보류 중인 대리자의를 변경 합니다.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • 이벤트 큐에서 대리자를 제거 하는 중입니다.Removing the delegate from the event queue.

  • 대리자가 반환 될 때까지 기다리는 중입니다.Waiting for the delegate to return.

  • 대리자가 실행 된 후 반환 하는 값을 가져옵니다.Obtaining the value that the delegate returns after it is executed.

BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출 된 후에 호출 하는 개체에 즉시 반환 됩니다.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

WPF에서는를 만든 스레드만 DispatcherObject 해당 개체에 액세스할 수 있습니다.In WPF, only the thread that created a DispatcherObject may access that object. 예를 들어, 주 UI 스레드에서 분리 된 백그라운드 스레드는 UI 스레드에 생성 된의 콘텐츠를 업데이트할 수 없습니다 Button .For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. 백그라운드 스레드가의 콘텐츠 속성에 액세스 하려면 Button 백그라운드 스레드에서 작업을 Dispatcher UI 스레드와 연결 된에 위임 해야 합니다.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. 이는 또는을 사용 하 여 수행 됩니다 Invoke BeginInvoke .This is accomplished by using either Invoke or BeginInvoke. Invoke 는 동기 이며 BeginInvoke 비동기입니다.Invoke is synchronous and BeginInvoke is asynchronous. 작업은 지정 된에 있는의 이벤트 큐에 추가 됩니다 Dispatcher DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

동일한에서 여러 번 BeginInvoke 호출 하는 경우 DispatcherPriority 호출이 수행 된 순서 대로 실행 됩니다.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

종료 된에 BeginInvoke 대해를 호출 하면 Dispatcher 반환 된의 상태 속성은 DispatcherOperation 로 설정 됩니다 Aborted .If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

추가 정보

적용 대상

제품 Introduced