Dispatcher.BeginInvoke メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
の可能性があります。
戻り値
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 イベント キューにプッシュされます。
戻り値
BeginInvoke の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。
- 属性
例外
method
が null
です。
priority
は有効な DispatcherPriority ではありません。
例
次の例は、操作 Dispatcherを . この例の完全なソース コードについては、「 Long-Running計算サンプルを使用したシングル スレッド アプリケーション」を参照してください。
最初に、引数を受け取らないデリゲートが作成されます。
public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()
次に、 BeginInvoke(DispatcherPriority, Delegate) 呼び出されます。 すべてのDispatcherObjectプロパティは関連付けられているプロパティをDispatcher返すので、必要Dispatcherなプロパティは、この場合ButtonはDispatcherObject名前付き 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
の可能性があります。
戻り値
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
指定したメソッドに引数として渡すオブジェクト。
戻り値
BeginInvoke の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、イベント キューで実行が保留になっているデリゲートと対話できます。
- 属性
例外
method
が null
です。
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のプロパティは 、この場合GridはDispatcherObject名前付き 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[]
指定したメソッドに引数として渡すオブジェクトの配列。
戻り値
BeginInvoke の呼び出し直後に返されるオブジェクト。このオブジェクトを使用して、Dispatcher キューで実行が保留になっているデリゲートと対話できます。
- 属性
例外
method
が null
です。
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.