次の方法で共有


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 委任する必要があります。 これは、どちらかInvokeBeginInvokeを使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した位置にあるイベント キューに Dispatcher 追加されます DispatcherPriority

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

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

返される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 委任する必要があります。 これは、どちらかInvokeBeginInvokeを使用して実現されます。 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 の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。

属性

例外

methodnullです。

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

次の例は、操作 Dispatcherを . この例の完全なソース コードについては、「 Long-Running計算サンプルを使用したシングル スレッド アプリケーション」を参照してください。

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

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

次に、 BeginInvoke(DispatcherPriority, Delegate) 呼び出されます。 すべてのDispatcherObjectプロパティは関連付けられているプロパティをDispatcher返すので、必要Dispatcherなプロパティは、この場合ButtonDispatcherObject名前付き startStopButton. 呼び出し BeginInvoke(DispatcherPriority, Delegate) は、2 つのパラメーターを受け取ります。優先度は 、に DispatcherPriority.Normal設定され、コールバックはデリゲート NextPrimeDelegateのインスタンスを介して渡されます。

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

注釈

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

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

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

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

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

  • デリゲートが返されるのを待っている。

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

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

WPF では、作成した DispatcherObject スレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された内容 Button を更新できません。 バックグラウンド スレッドが Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている作業を Dispatcher 委任する必要があります。 これは、どちらかInvokeBeginInvokeを使用して実現されます。 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 必要があります。 これは、どちらかをInvokeBeginInvoke使用して行います。 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

引数を 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のプロパティは 、この場合GridDispatcherObject名前付き 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 引数が必要ない場合に使用できます。

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

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

  • DispatcherPriorityイベント キューでの保留中のデリゲートの変更。

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

  • デリゲートが返されるのを待っている。

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

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

WPF では、作成したスレッドのみがそのオブジェクトに DispatcherObject アクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された内容 Button を更新できません。 バックグラウンド スレッドがコンテンツ プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている作業を委任する Dispatcher 必要があります。 これは、どちらかをInvokeBeginInvoke使用して行います。 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 キューで実行が保留になっているデリゲートと対話できます。

属性

例外

methodnullです。

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

注釈

引数が arg 必要ない場合は、パラメーターを指定できます null

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

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

  • DispatcherPriorityイベント キューでの保留中のデリゲートの変更。

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

  • デリゲートが返されるのを待っている。

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

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

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

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

シャットダウンした状態でDispatcher呼び出された場合BeginInvoke、返されるDispatcherOperation状態プロパティは Aborted.

こちらもご覧ください

適用対象