Dispatcher.Invoke 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在所 Dispatcher 關聯的執行緒上同步執行指定的代理。
多載
範例
以下範例將代理置於 at Dispatcher 上Normal,使用。Invoke
// 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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
一個代理給一個方法,該方法會接收一個參數,該參數會被推送到事件隊列。Dispatcher
- arg
- Object
一個物件,作為參數傳遞給定的方法。
傳回
是被呼叫代理的回傳值,或 null 是代理沒有回傳值時的回傳值。
- 屬性
例外狀況
priority 等於 Inactive。
priority 不是一個有效的優先事項。
method 是 null。
備註
arg如果不需要參數,則可以是null
在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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。
範例
以下範例將代理置於 at Dispatcher 上Normal,使用。Invoke
// 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 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 不是一個有效的優先事項。
取消令牌也被取消了。 此例外會儲存在回傳的任務中。