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.

注釈

WPFWPFは、をDispatcherObject作成したスレッドだけがそのオブジェクトにアクセスできます。In WPFWPF, 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. バックグラウンドスレッドがの Content プロパティButtonにアクセスするためには、UI スレッドにDispatcher関連付けられているに作業を委任する必要があります。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.

BeginInvokeデリゲートがイベントキューに存在する場合に、デリゲートと対話するために使用できるオブジェクトを返します。DispatcherOperationBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

によってBeginInvoke返されるオブジェクトは、次のように、指定されたデリゲートと対話するいくつかの方法で使用できます。DispatcherOperationThe 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れるの status プロパティはに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.

戻り値

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.

注釈

によってBeginInvoke返されるオブジェクトは、次のように、指定されたデリゲートと対話するいくつかの方法で使用できます。DispatcherOperationThe 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.

WPFWPFは、をDispatcherObject作成したスレッドだけがそのオブジェクトにアクセスできます。In WPFWPF, 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. バックグラウンドスレッドがの Content プロパティButtonにアクセスするためには、UI スレッドにDispatcher関連付けられているに作業を委任する必要があります。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れるの status プロパティはにAborted設定されます。If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

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);
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, 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.

戻り値

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.

属性

例外

methodnullです。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 startStopButton Dispatcher Dispatcherには、に関連付けられているを返すプロパティButton があるため、必要なはに対してクエリを実行することによって取得されます。この場合は、という名前になります。DispatcherObjectBecause 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設定されている priority と、デリゲートNextPrimeDelegateのインスタンスを介して渡されるコールバックの2つのパラメーターを受け取ります。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.

BeginInvokeデリゲートがイベントキューに存在する場合に、デリゲートと対話するために使用できるオブジェクトを返します。DispatcherOperationBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

によってBeginInvoke返されるオブジェクトは、次のように、指定されたデリゲートと対話するいくつかの方法で使用できます。DispatcherOperationThe 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.

WPFWPFは、をDispatcherObject作成したスレッドだけがそのオブジェクトにアクセスできます。In WPFWPF, 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. バックグラウンドスレッドがの Content プロパティButtonにアクセスするためには、UI スレッドにDispatcher関連付けられているに作業を委任する必要があります。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れるの status プロパティはに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, 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, the specified method is invoked.

args
Object[]

特定のメソッドに引数として渡すオブジェクトの配列。An array of objects to pass as arguments to the given method. null の可能性があります。Can be null.

戻り値

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.

注釈

によってBeginInvoke返されるオブジェクトは、次のように、指定されたデリゲートと対話するいくつかの方法で使用できます。DispatcherOperationThe 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.

WPFWPFは、をDispatcherObject作成したスレッドだけがそのオブジェクトにアクセスできます。In WPFWPF, 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. バックグラウンドスレッドがの Content プロパティButtonにアクセスするためには、UI スレッドにDispatcher関連付けられているに作業を委任する必要があります。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れるの status プロパティはにAborted設定されます。If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

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);
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, the specified method is invoked.

method
Delegate

引数を 1 つ受け取るメソッドへのデリゲート。このデリゲートは、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.

戻り値

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.

属性

例外

methodnull です。method is null.

priority は有効な DispatcherPriority ではありません。priority is not a valid DispatcherPriority.

次の例は、に操作Dispatcherを配置する方法を示しています。The following example shows how to place an operation onto a Dispatcher.

まず、1つの引数 (この場合は文字列) を受け入れるデリゲートが作成されます。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 tomorrowsWeather Dispatcher Dispatcherには、に関連付けられているを返すプロパティGrid があるため、必要なはに対してクエリを実行することによって取得されます。この場合は、という名前になります。DispatcherObjectBecause 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)は、3つのパラメーターを受け取ります。これはDispatcherPriority.Normal、に設定されている、デリゲートOneArgDelegateのインスタンスを介して渡されるコールバック、 weatherおよびコールバックの引数であるという名前の文字列です。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.

BeginInvokeデリゲートがイベントキューに存在する場合に、デリゲートと対話するために使用できるオブジェクトを返します。DispatcherOperationBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

によってBeginInvoke返されるオブジェクトは、次のように、指定されたデリゲートと対話するいくつかの方法で使用できます。DispatcherOperationThe 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.

WPFWPFは、をDispatcherObject作成したスレッドだけがそのオブジェクトにアクセスできます。In WPFWPF, 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. バックグラウンドスレッドがの content プロパティButtonにアクセスするためには、UI スレッドにDispatcher関連付けられているに作業を委任する必要があります。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れるの status プロパティはにAborted設定されます。If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

こちらもご覧ください

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);
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, 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.

戻り値

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.

属性

例外

methodnullです。method is null.

DispatcherPriority が有効な優先順位ではありません。DispatcherPriority is not a valid priority.

注釈

引数argが不要なnull場合は、パラメーターをにすることができます。The arg parameter can be null if no arguments are needed.

BeginInvokeデリゲートがイベントキューに存在する場合に、デリゲートと対話するために使用できるオブジェクトを返します。DispatcherOperationBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

によってBeginInvoke返されるオブジェクトは、次のように、指定されたデリゲートと対話するいくつかの方法で使用できます。DispatcherOperationThe 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.

WPFWPFは、をDispatcherObject作成したスレッドだけがそのオブジェクトにアクセスできます。In WPFWPF, 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. バックグラウンドスレッドがの Content プロパティButtonにアクセスするためには、UI スレッドにDispatcher関連付けられているに作業を委任する必要があります。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れるの status プロパティはにAborted設定されます。If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

こちらもご覧ください

適用対象