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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會新增至位於指定 DispatcherPriority 之 的事件佇列 Dispatcher 中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會新增至位於指定 DispatcherPriority 之 的事件佇列 Dispatcher 中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會新增至位於指定 DispatcherPriority 之 的事件佇列 Dispatcher 中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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
採用一個引數的方法委派,此委派會推入至 Dispatcher 事件佇列。
- arg
- Object
做為引數傳遞至指定方法的物件。
傳回
來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null
。
- 屬性
例外狀況
priority
等於 Inactive。
priority
不是有效的優先權。
method
為 null
。
備註
arg
如果不需要引數,則可以是 null
在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 Invoke 或 BeginInvoke 來完成。 Invoke 是同步的,而且 BeginInvoke 是非同步。 作業會加入至位於指定 DispatcherPriority 之 的事件 Dispatcher 佇列中。
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
不是有效的優先權。
解除標記已取消。 此例外狀況會儲存在傳回的工作中。