Dispatcher.Invoke 方法

定義

在所 Dispatcher 關聯的執行緒上同步執行指定的代理。

多載

名稱 Description
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

在所 Dispatcher 關聯的執行緒上,以指定的優先權與參數同步執行指定的代理。

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

以指定的優先權與參數,同步執行指定的代理,並於該 Dispatcher 執行緒上執行。

Invoke(DispatcherPriority, Delegate, Object, Object[])

在所 Dispatcher 關聯的執行緒上,以指定的優先權與參數同步執行指定的代理。

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

在所Action關聯的執行緒上,以指定優先順序同步執行指定的Dispatcher任務。

Invoke(DispatcherPriority, TimeSpan, Delegate)

以指定的優先權同步執行指定的代理,並在所建立的執行緒 Dispatcher 上達到指定的逾時值。

Invoke(DispatcherPriority, Delegate, Object)

以指定的優先權與參數,同步執行指定的代理,並於該 Dispatcher 執行緒上執行。

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

在指定時間區間內,以指定優先權,並同步執行指定的代理,並以指定參數在所 Dispatcher 關聯的執行緒上執行。

Invoke(Delegate, TimeSpan, Object[])

在指定時間區間內,以指定優先權,並同步執行指定的代理,並以指定參數在所 Dispatcher 關聯的執行緒上執行。

Invoke(Action, DispatcherPriority, CancellationToken)

在所Action關聯的執行緒上,以指定優先順序同步執行指定的Dispatcher任務。

Invoke(DispatcherPriority, Delegate)

在所 Dispatcher 關聯的執行緒中,以指定的優先權同步執行指定的代理。

Invoke(Delegate, Object[])

在所 Dispatcher 關聯的執行緒上,同步執行指定的代理,並以指定的參數執行。

Invoke(Action, DispatcherPriority)

在所Action關聯的執行緒上,以指定優先順序同步執行指定的Dispatcher任務。

Invoke(Action)

在所Action關聯的執行緒上同步執行指定的Dispatcher執行緒。

Invoke(Delegate, DispatcherPriority, Object[])

在所 Dispatcher 關聯的執行緒上,以指定的優先權與參數同步執行指定的代理。

Invoke<TResult>(Func<TResult>)

在所Func<TResult>關聯的執行緒上同步執行指定的Dispatcher執行緒。

Invoke<TResult>(Func<TResult>, DispatcherPriority)

在所Func<TResult>關聯的執行緒上,以指定優先順序同步執行指定的Dispatcher任務。

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

在所Func<TResult>關聯的執行緒上,以指定優先順序同步執行指定的Dispatcher任務。

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

在所Func<TResult>關聯的執行緒上,以指定優先順序同步執行指定的Dispatcher任務。

範例

以下範例將代理置於 at DispatcherNormal,使用。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 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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

methodnull

timeout 是除 -1 外的負數,且此方法跨執行緒被調用。

備註

arg 如果不需要論證,則可能是 null

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 不是一個有效的優先事項。

methodnull

備註

arg如果不需要參數,則可以是null

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 不是一個有效的優先事項。

methodnull

備註

arg如果不需要參數,則可以是null

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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

例外狀況

callbacknull

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 是代理沒有回傳值時的回傳值。

屬性

例外狀況

methodnull

timeout 是除 -1 外的負數,且此方法跨執行緒被調用。

priority 等於 Inactive

priority 不是一個有效的優先事項。

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 不是一個有效的優先事項。

methodnull

備註

arg如果不需要參數,則可以是null

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 是代理沒有回傳值時的回傳值。

例外狀況

methodnull

timeout 是除 -1 外的負數,且此方法跨執行緒被調用。

priority 等於 Inactive

priority 不是一個有效的優先事項。

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 是代理沒有回傳值時的回傳值。

例外狀況

methodnull

timeout 是除 -1 外的負數,且你是在多個執行緒間調用。

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒才能存取該物件。 例如,從主 UI 執行緒分拆出來的背景執行緒無法更新 Button 在 UI 執行緒上建立的內容。 為了讓背景執行緒存取 的內容屬性 Button,背景執行緒必須將工作委派給與 UI 執行緒相關的執行 Dispatcher 緒。 此操作可透過使用或 InvokeBeginInvoke來達成。 Invoke 是同步的,也是 BeginInvoke 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 不是一個有效的優先事項。

methodnull

範例

以下範例將代理置於 at DispatcherNormal,使用。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 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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 非同步的。 該操作會被加入指定位置DispatcherDispatcherPriority事件佇列中。

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>

透過調度員召喚一個代表。

傳回

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的順序的優先權。

傳回

TResult

該值由 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

一個指示是否取消該操作的物件。

傳回

TResult

該值由 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

傳回

TResult

該值由 callback返回。

例外狀況

callbacknull

timeout 是除 -1 外的負數,且該方法跨執行緒被呼叫。

priority 不是一個有效的優先事項。

取消令牌也被取消了。 此例外會儲存在回傳的任務中。

適用於