Dispatcher.Invoke メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Dispatcher が関連付けられているスレッドで、指定したデリゲートを同期的に実行します。
オーバーロード
例
次の例では、 を使用して InvokeにデリゲートをDispatcherNormal配置します。
// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
// Place delegate on the Dispatcher.
this.Dispatcher.Invoke(DispatcherPriority.Normal,
new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
' Place delegate on the Dispatcher.
Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で同期的に実行します。
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object
パラメーター
- priority
- DispatcherPriority
指定したメソッドが呼び出される、イベント キュー内の他の Dispatcher 保留中の操作に対する相対的な優先度。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
- method
- Delegate
複数の引数を受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- arg
- Object
指定したメソッドに引数として渡すオブジェクト。
- args
- Object[]
指定したメソッドに引数として渡すオブジェクトの配列。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
- 属性
例外
priority
と Inactive が等価です。
priority
は有効な DispatcherPriority ではありません。
method
が null
です。
timeout
は -1 以外の負の数であり、このメソッドはスレッド間で呼び出されました。
注釈
arg
は、引数が必要ない場合に 使用 null
できます。
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で同期的に実行します。
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object
パラメーター
- priority
- DispatcherPriority
指定したメソッドが呼び出される、イベント キュー内の他の Dispatcher 保留中の操作に対する相対的な優先度。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
- method
- Delegate
複数の引数を受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- arg
- Object
指定したメソッドに引数として渡すオブジェクト。 引数が必要ない場合は、null
を指定できます。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
- 属性
例外
priority
と Inactive が等価です。
priority
が有効な優先順位ではありません。
method
が null
です。
注釈
arg
null
引数が必要ない場合は を指定できます。
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(DispatcherPriority, Delegate, Object, Object[])
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で同期的に実行します。
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object
パラメーター
- priority
- DispatcherPriority
指定したメソッドが呼び出される、イベント キュー内の他の Dispatcher 保留中の操作に対する相対的な優先度。
- method
- Delegate
複数の引数を受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- arg
- Object
指定したメソッドに引数として渡すオブジェクト。
- args
- Object[]
特定のメソッドに引数として渡すオブジェクトの配列。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
- 属性
例外
priority
と Inactive が等価です。
priority
が有効な優先順位ではありません。
method
が null
です。
注釈
arg
null
引数が必要ない場合は を指定できます。
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Action が関連付けられているスレッドで、指定した Dispatcher を指定した優先順位で同期的に実行します。
public:
void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)
パラメーター
- callback
- Action
ディスパッチャーを介して呼び出すアクション デリゲート。
- priority
- DispatcherPriority
内の他の保留中の操作に対して、指定したコールバックが呼び出される順序を Dispatcher決定する優先順位。
- cancellationToken
- CancellationToken
アクションをキャンセルするかどうかを示すオブジェクト。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
例外
callback
が null
です。
timeout
は -1 以外の負の数であり、このメソッドはスレッド間で呼び出されました。
priority
が有効な優先順位ではありません。
キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。
適用対象
Invoke(DispatcherPriority, TimeSpan, Delegate)
Dispatcher が作成されたスレッドで、指定したタイムアウトの値を使用して、指定したデリゲートを指定した優先順位で同期的に実行します。
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object
パラメーター
- priority
- DispatcherPriority
指定したメソッドが呼び出される、イベント キュー内の他の Dispatcher 保留中の操作に対する相対的な優先度。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
- method
- Delegate
引数を受け取らないメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
- 属性
例外
method
が null
です。
timeout
は -1 以外の負の数であり、このメソッドはスレッド間で呼び出されました。
priority
と Inactive が等価です。
priority
が有効な優先順位ではありません。
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(DispatcherPriority, Delegate, Object)
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で同期的に実行します。
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object
パラメーター
- priority
- DispatcherPriority
指定したメソッドが呼び出される、イベント キュー内の他の Dispatcher 保留中の操作に対する相対的な優先度。
- method
- Delegate
引数を 1 つ受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- arg
- Object
指定したメソッドに引数として渡すオブジェクト。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
- 属性
例外
priority
と Inactive が等価です。
priority
が有効な優先順位ではありません。
method
が null
です。
注釈
arg
null
引数が必要ない場合は を指定できます。
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で、指定した期間内に同期的に実行します。
public:
System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object
パラメーター
- method
- Delegate
args
で指定したパラメーターを受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
- priority
- DispatcherPriority
指定したメソッドが呼び出される、イベント キュー内の他の Dispatcher 保留中の操作に対する相対的な優先度。
- args
- Object[]
特定のメソッドに引数として渡すオブジェクトの配列。
null
の可能性があります。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
例外
method
が null
です。
timeout
は -1 以外の負の数であり、このメソッドはスレッド間で呼び出されました。
priority
と Inactive が等価です。
priority
が有効な優先順位ではありません。
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(Delegate, TimeSpan, Object[])
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で、指定した期間内に同期的に実行します。
public:
System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object
パラメーター
- method
- Delegate
args
で指定したパラメーターを受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 ただし、操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
- args
- Object[]
特定のメソッドに引数として渡すオブジェクトの配列。
null
引数が必要ない場合は を指定できます。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
例外
method
が null
です。
timeout
は -1 以外の負の数であり、スレッド間で呼び出しています。
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(Action, DispatcherPriority, CancellationToken)
Action が関連付けられているスレッドで、指定した Dispatcher を指定した優先順位で同期的に実行します。
public:
void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)
パラメーター
- callback
- Action
ディスパッチャーを通じて呼び出すデリゲート。
- priority
- DispatcherPriority
内の他の保留中の操作に対して、指定したコールバックが呼び出される順序を Dispatcher決定する優先順位。
- cancellationToken
- CancellationToken
アクションをキャンセルするかどうかを示すオブジェクト。
例外
キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。
適用対象
Invoke(DispatcherPriority, Delegate)
が関連付けられているスレッドで、指定した優先度で、指定したデリゲートを Dispatcher 同期的に実行します。
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object
パラメーター
- priority
- DispatcherPriority
イベント キュー内の他の保留中の操作 Dispatcher を基準にして、指定したメソッドが呼び出される優先度。
- method
- Delegate
引数を受け取らないメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
- 属性
例外
priority
と Inactive が等価です。
priority
が有効な優先順位ではありません。
method
が null
です。
例
次の例では、 を使用して InvokeにデリゲートをDispatcherNormal配置します。
// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
// Place delegate on the Dispatcher.
this.Dispatcher.Invoke(DispatcherPriority.Normal,
new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
' Place delegate on the Dispatcher.
Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(Delegate, Object[])
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを同期的に実行します。
public:
System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object
パラメーター
- method
- Delegate
args
で指定したパラメーターを受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- args
- Object[]
特定のメソッドに引数として渡すオブジェクトの配列。
null
の可能性があります。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke(Action, DispatcherPriority)
Action が関連付けられているスレッドで、指定した Dispatcher を指定した優先順位で同期的に実行します。
public:
void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)
パラメーター
- callback
- Action
ディスパッチャーを通じて呼び出すデリゲート。
- priority
- DispatcherPriority
内の他の保留中の操作に対して、指定したコールバックが呼び出される順序を Dispatcher決定する優先順位。
適用対象
Invoke(Action)
Action が関連付けられているスレッドで、指定した Dispatcher を同期的に実行します。
public:
void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)
パラメーター
- callback
- Action
ディスパッチャーを通じて呼び出すデリゲート。
注釈
既定の優先度は です DispatcherPriority.Send
。
適用対象
Invoke(Delegate, DispatcherPriority, Object[])
Dispatcher が関連付けられているスレッドで、指定した引数を使用して、指定したデリゲートを指定した優先順位で同期的に実行します。
public:
System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object
パラメーター
- method
- Delegate
args
で指定したパラメーターを受け取るメソッドへのデリゲート。このデリゲートは、Dispatcher イベント キューにプッシュされます。
- priority
- DispatcherPriority
イベント キュー内の他の保留中の操作 Dispatcher を基準にして、指定したメソッドが呼び出される優先度。
- args
- Object[]
特定のメソッドに引数として渡すオブジェクトの配列。
null
の可能性があります。
戻り値
呼び出されているデリゲートからの戻り値。デリゲートに戻り値がない場合は null
。
注釈
WPF では、 を作成 DispatcherObject したスレッドのみがそのオブジェクトにアクセスできます。 たとえば、メイン UI スレッドからスピンオフされたバックグラウンド スレッドは、UI スレッドで作成された のButton内容を更新できません。 バックグラウンド スレッドが の Content プロパティ Buttonにアクセスするには、バックグラウンド スレッドが UI スレッドに関連付けられている に Dispatcher 作業を委任する必要があります。 これは、 または BeginInvokeのいずれかをInvoke使用して実現されます。 Invoke は同期であり、 BeginInvoke 非同期です。 操作は、指定した にある の Dispatcher イベント キューに追加されます DispatcherPriority。
Invoke は同期操作です。したがって、コールバックが返されるまで、コントロールは呼び出し元のオブジェクトに戻りません。
適用対象
Invoke<TResult>(Func<TResult>)
Func<TResult> が関連付けられているスレッドで、指定した Dispatcher を同期的に実行します。
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult
型パラメーター
- TResult
指定されたデリゲートの戻り値の型。
パラメーター
- callback
- Func<TResult>
ディスパッチャーを通じて呼び出すデリゲート。
戻り値
callback
によって返される値。
適用対象
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Func<TResult> が関連付けられているスレッドで、指定した Dispatcher を指定した優先順位で同期的に実行します。
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult
型パラメーター
- TResult
指定されたデリゲートの戻り値の型。
パラメーター
- callback
- Func<TResult>
ディスパッチャーを通じて呼び出すデリゲート。
- priority
- DispatcherPriority
内の他の保留中の操作に対して、指定したコールバックが呼び出される順序を Dispatcher決定する優先順位。
戻り値
callback
によって返される値。
適用対象
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Func<TResult> が関連付けられているスレッドで、指定した Dispatcher を指定した優先順位で同期的に実行します。
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult
型パラメーター
- TResult
指定されたデリゲートの戻り値の型。
パラメーター
- callback
- Func<TResult>
ディスパッチャーを通じて呼び出すデリゲート。
- priority
- DispatcherPriority
内の他の保留中の操作に対して、指定したコールバックが呼び出される順序を Dispatcher決定する優先順位。
- cancellationToken
- CancellationToken
操作をキャンセルするかどうかを示すオブジェクト。
戻り値
callback
によって返される値。
例外
キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。
適用対象
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)
Func<TResult> が関連付けられているスレッドで、指定した Dispatcher を指定した優先順位で同期的に実行します。
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult
型パラメーター
- TResult
指定されたデリゲートの戻り値の型。
パラメーター
- callback
- Func<TResult>
ディスパッチャーを通じて呼び出すデリゲート。
- priority
- DispatcherPriority
内の他の保留中の操作に対して、指定したコールバックが呼び出される順序を Dispatcher決定する優先順位。
- cancellationToken
- CancellationToken
操作をキャンセルするかどうかを示すオブジェクト。
- timeout
- TimeSpan
操作の開始を待機する最大時間。 操作が開始されると、このメソッドが返される前に完了します。 無限待機を指定するには、-1 の値を使用します。 同じスレッド呼び出しでは、他の負の値は -1 に変換され、結果として無限待機になります。 スレッド間の呼び出しでは、他の負の値は を ArgumentOutOfRangeExceptionスローします。
戻り値
callback
によって返される値。
例外
callback
が null
です。
timeout
は -1 以外の負の数であり、メソッドはスレッド間で呼び出されました。
priority
が有効な優先順位ではありません。
キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。
適用対象
.NET