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 プロパティにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に作業を委任 Button Dispatcher する必要があります。 これは、 または を使用して実現 Invoke されます BeginInvokeInvoke は同期であり BeginInvoke 、非同期です。 操作は、指定した にある のイベント Dispatcher キューに追加されます DispatcherPriority

BeginInvoke は非同期です。したがって、 コントロールは、呼び出し元のオブジェクトが呼び出された直後に を返します。

BeginInvoke は、 DispatcherOperation デリゲートがイベント キューにあるときにデリゲートとの対話に使用できる オブジェクトを返します。

によって DispatcherOperation 返される オブジェクト BeginInvoke は、次のように、指定したデリゲートと対話するためにいくつかの方法で使用できます。

  • イベント キュー DispatcherPriority での実行が保留中のデリゲートの を変更する。

  • イベント キューからデリゲートを削除する。

  • デリゲートが返されるのを待機しています。

  • デリゲートが実行された後に返す値を取得します。

同じ BeginInvoke で複数の呼び出しが行われた場合、呼び出しが行われた DispatcherPriority 順序で実行されます。

BeginInvoke シャットダウンされた で が Dispatcher 呼び出された場合、返される の status プロパティは 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 の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。

注釈

によって DispatcherOperation 返される オブジェクト BeginInvoke は、次のように、指定したデリゲートと対話するためにいくつかの方法で使用できます。

  • イベント キュー DispatcherPriority での実行が保留中のデリゲートの を変更する。

  • イベント キューからデリゲートを削除する。

  • デリゲートが返されるのを待機しています。

  • デリゲートが実行された後に返す値を取得します。

BeginInvoke は非同期です。したがって、 コントロールは、呼び出し元のオブジェクトが呼び出された直後に を返します。

WPF では、 を作成したスレッドだけが DispatcherObject そのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスパンオフされたバックグラウンド スレッドは、UI スレッドで作成された の内容 Button を更新できません。 バックグラウンド スレッドが の Content プロパティにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に作業を委任 Button Dispatcher する必要があります。 これは、 または を使用して実現 Invoke されます BeginInvokeInvoke は同期であり BeginInvoke 、非同期です。 操作は、指定した にある のイベント Dispatcher キューに追加されます DispatcherPriority

BeginInvoke シャットダウンされた で が Dispatcher 呼び出された場合、返される の status プロパティは 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 の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。

属性

例外

methodnullです。

priority は有効な DispatcherPriority ではありません。

次の例は、 に操作を配置する方法を示しています Dispatcher 。 この例の完全なソース コードについては、「シングル スレッド アプリケーションとスレッド処理の計算 サンプルLong-Running参照してください

最初に、引数を受け入れないデリゲートが作成されます。

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

次に、 BeginInvoke(DispatcherPriority, Delegate) が呼び出されます。 すべての には、関連付けられている を返す プロパティが含まれるため、必要な は に対してクエリを実行することで取得されます。この場合、 という名前の DispatcherObject Dispatcher Dispatcher DispatcherObject Button です startStopButton 。 の呼び出しは、2 つのパラメーターを受け取ります。優先度は に設定され、コールバックはデリゲート のインスタンスを介 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 順序で実行されます。

BeginInvoke は、 DispatcherOperation デリゲートがイベント キューにあるときにデリゲートとの対話に使用できる オブジェクトを返します。

によって DispatcherOperation 返される オブジェクト BeginInvoke は、次のように、指定したデリゲートと対話するためにいくつかの方法で使用できます。

  • イベント キュー DispatcherPriority での実行が保留中のデリゲートの を変更する。

  • イベント キューからデリゲートを削除する。

  • デリゲートが返されるのを待機しています。

  • デリゲートが実行された後に返す値を取得します。

BeginInvoke は非同期です。したがって、 コントロールは、呼び出し元のオブジェクトが呼び出された直後に を返します。

WPF では、 を作成したスレッドだけが DispatcherObject そのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスパンオフされたバックグラウンド スレッドは、UI スレッドで作成された の内容 Button を更新できません。 バックグラウンド スレッドが の Content プロパティにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に作業を委任 Button Dispatcher する必要があります。 これは、 または を使用して実現 Invoke されます BeginInvokeInvoke は同期であり BeginInvoke 、非同期です。 操作は、指定した にある のイベント Dispatcher キューに追加されます DispatcherPriority

BeginInvoke シャットダウンされた で が Dispatcher 呼び出された場合、返される の status プロパティは 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 の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。

注釈

によって DispatcherOperation 返される オブジェクト BeginInvoke は、次のように、指定したデリゲートと対話するためにいくつかの方法で使用できます。

  • イベント キュー DispatcherPriority での実行が保留中のデリゲートの を変更する。

  • イベント キューからデリゲートを削除する。

  • デリゲートが返されるのを待機しています。

  • デリゲートが実行された後に返す値を取得します。

BeginInvoke は非同期です。したがって、 コントロールは、呼び出し元のオブジェクトが呼び出された直後に を返します。

WPF では、 を作成したスレッドだけが DispatcherObject そのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスパンオフされたバックグラウンド スレッドは、UI スレッドで作成された の内容 Button を更新できません。 バックグラウンドスレッドがの Content プロパティにアクセスするためには、 Button Dispatcher UI スレッドに関連付けられているに作業を委任する必要があります。 これは、またはを使用して行い Invoke BeginInvoke ます。 Invoke は同期的であり、 BeginInvoke 非同期です。 操作は、指定したののイベントキューに追加され Dispatcher DispatcherPriority ます。

BeginInvokeシャットダウンされたでが呼び出された場合 Dispatcher 、返されるの status プロパティ 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

引数を 1 つ受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。

arg
Object

指定したメソッドに引数として渡すオブジェクト。

戻り値

DispatcherOperation

BeginInvoke の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。

属性

例外

methodnullです。

priority は有効な DispatcherPriority ではありません。

次の例は、に操作を配置する方法を示して Dispatcher います。

まず、1つの引数 (この場合は文字列) を受け入れるデリゲートが作成されます。

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

次に、 BeginInvoke(DispatcherPriority, Delegate, Object) が呼び出されます。 には、に関連付けられているを返すプロパティがあるため、必要なはに対してクエリを実行する DispatcherObject Dispatcher Dispatcher ことによって取得され DispatcherObject ます。この場合は、 Grid という名前に tomorrowsWeather なります。 の呼び出しは、 BeginInvoke(DispatcherPriority, Delegate, Object) 3 つのパラメーターを受け取ります。これは、に設定されている、 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デリゲートがイベントキューに存在する場合に、デリゲートと対話するために使用できるオブジェクトを返します。

DispatcherOperationによって返されるオブジェクトは、次のように、 BeginInvoke 指定されたデリゲートと対話するいくつかの方法で使用できます。

  • DispatcherPriorityイベントキューで実行が保留中であるため、デリゲートのを変更します。

  • イベントキューからデリゲートを削除しています。

  • デリゲートが返されるのを待機しています。

  • 実行後にデリゲートが返す値を取得しています。

BeginInvoke は非同期です。そのため、呼び出された後、呼び出し元のオブジェクトに制御が直ちに戻ります。

WPF では、を作成したスレッドだけ DispatcherObject がそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンドスレッドは、 Button ui スレッドで作成されたの内容を更新できません。 バックグラウンドスレッドがの content プロパティにアクセスするためには、 Button Dispatcher UI スレッドに関連付けられているに作業を委任する必要があります。 これは、またはを使用して行い Invoke BeginInvoke ます。 Invoke は同期的であり、 BeginInvoke 非同期です。 操作は、指定したののイベントキューに追加され Dispatcher DispatcherPriority ます。

同じで複数の呼び出しが行われると、呼び出しが行われた BeginInvoke DispatcherPriority 順序で実行されます。

BeginInvokeシャットダウンされたでが呼び出された場合 Dispatcher 、返されるの status プロパティ 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 キューで実行が保留になっているデリゲートと対話できます。

属性

例外

methodnullです。

DispatcherPriority が有効な優先順位ではありません。

注釈

arg引数が不要な場合は、パラメーターをにすることができ null ます。

BeginInvokeDispatcherOperationデリゲートがイベントキューに存在する場合に、デリゲートと対話するために使用できるオブジェクトを返します。

DispatcherOperationによって返されるオブジェクトは、次のように、 BeginInvoke 指定されたデリゲートと対話するいくつかの方法で使用できます。

  • DispatcherPriorityイベントキューで実行が保留中であるため、デリゲートのを変更します。

  • イベントキューからデリゲートを削除しています。

  • デリゲートが返されるのを待機しています。

  • 実行後にデリゲートが返す値を取得しています。

BeginInvoke は非同期です。そのため、呼び出された後、呼び出し元のオブジェクトに制御が直ちに戻ります。

WPF では、を作成したスレッドだけ DispatcherObject がそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンドスレッドは、 Button ui スレッドで作成されたの内容を更新できません。 バックグラウンドスレッドがの Content プロパティにアクセスするためには、 Button Dispatcher UI スレッドに関連付けられているに作業を委任する必要があります。 これは、またはを使用して行い Invoke BeginInvoke ます。 Invoke は同期的であり、 BeginInvoke 非同期です。 操作は、指定したののイベントキューに追加され Dispatcher DispatcherPriority ます。

同じで複数の呼び出しが行われると、呼び出しが行われた BeginInvoke DispatcherPriority 順序で実行されます。

BeginInvokeシャットダウンされたでが呼び出された場合 Dispatcher 、返されるの status プロパティ DispatcherOperation はに設定され Aborted ます。

こちらもご覧ください

適用対象