Dispatcher.Invoke 方法

定義

Dispatcher 關聯的執行緒上以同步方式執行指定的委派。

多載

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

範例

下列範例會使用 InvokeDispatcher Normal 委派放在 。

// 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 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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[]

做為引數傳遞至指定方法的物件陣列。

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

屬性

例外狀況

priority 等於 Inactive

priority 不是有效的 DispatcherPriority

methodnull

timeout 是 -1 以外的負數,而且這個方法是線上程之間叫用的。

備註

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

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

屬性

例外狀況

priority 等於 Inactive

priority 不是有效的優先權。

methodnull

備註

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

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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[]

做為引數傳遞至指定方法的物件陣列。

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

屬性

例外狀況

priority 等於 Inactive

priority 不是有效的優先權。

methodnull

備註

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

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

例外狀況

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 事件佇列。

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

屬性

例外狀況

methodnull

timeout 是 -1 以外的負數,而且這個方法已線上程之間叫用。

priority 等於 Inactive

priority 不是有效的優先權。

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

做為引數傳遞至指定方法的物件。

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

屬性

例外狀況

priority 等於 Inactive

priority 不是有效的優先權。

methodnull

備註

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

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

例外狀況

methodnull

timeout 是 -1 以外的負數,而且這個方法已線上程之間叫用。

priority 等於 Inactive

priority 不是有效的優先權。

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

例外狀況

methodnull

timeout 是 -1 以外的負數,而且您要跨執行緒叫用。

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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 事件佇列。

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

屬性

例外狀況

priority 等於 Inactive

priority 不是有效的優先權。

methodnull

範例

下列範例會使用 InvokeDispatcher Normal 委派放在 。

// 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 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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

傳回

Object

來自所叫用的委派的傳回值,或者如果委派沒有任何傳回值,則為 null

備註

在 WPF 中,只有建立 的 DispatcherObject 執行緒可以存取該物件。 例如,從主要 UI 執行緒擷取的背景執行緒無法更新在 UI 執行緒上建立的 Button 內容。 為了讓背景執行緒存取 的 Button Content 屬性,背景執行緒必須將工作委派給 Dispatcher 與 UI 執行緒相關聯的 。 這是使用 InvokeBeginInvoke 來完成。 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>

要透過發送器叫用的委派。

傳回

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 不是有效的優先權。

適用於