Dispatcher.Invoke Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Executes the specified delegate synchronously on the thread the Dispatcher is associated with.
Overloads
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) |
Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with. |
Invoke(DispatcherPriority, TimeSpan, Delegate, Object) |
Executes the specified delegate at the specified priority with the specified argument synchronously on the thread the Dispatcher is associated with. |
Invoke(DispatcherPriority, Delegate, Object, Object[]) |
Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with. |
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) |
Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with. |
Invoke(DispatcherPriority, TimeSpan, Delegate) |
Executes the specified delegate synchronously at the specified priority and with the specified time-out value on the thread the Dispatcher was created. |
Invoke(DispatcherPriority, Delegate, Object) |
Executes the specified delegate at the specified priority with the specified argument synchronously on the thread the Dispatcher is associated with. |
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) |
Executes the specified delegate within the designated time span at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with. |
Invoke(Delegate, TimeSpan, Object[]) |
Executes the specified delegate within the designated time span at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with. |
Invoke(Action, DispatcherPriority, CancellationToken) |
Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with. |
Invoke(DispatcherPriority, Delegate) |
Executes the specified delegate synchronously at the specified priority on the thread that the Dispatcher is associated with. |
Invoke(Delegate, Object[]) |
Executes the specified delegate with the specified arguments synchronously on the thread the Dispatcher is associated with. |
Invoke(Action, DispatcherPriority) |
Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with. |
Invoke(Action) |
Executes the specified Action synchronously on the thread the Dispatcher is associated with. |
Invoke(Delegate, DispatcherPriority, Object[]) |
Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with. |
Invoke<TResult>(Func<TResult>) |
Executes the specified Func<TResult> synchronously on the thread the Dispatcher is associated with. |
Invoke<TResult>(Func<TResult>, DispatcherPriority) |
Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) |
Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) |
Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with. |
Examples
The following example places a delegate onto a Dispatcher at Normal using 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
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.
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
Parameters
- priority
- DispatcherPriority
The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. Once the operation has started, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
- method
- Delegate
A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.
- arg
- Object
An object to pass as an argument to the specified method.
- args
- Object[]
An array of objects to pass as arguments to the specified method.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
- Attributes
Exceptions
priority
is equal to Inactive.
priority
is not a valid DispatcherPriority.
method
is null
.
timeout
is a negative number other than -1, and this method was invoked across threads.
Remarks
arg
can be null
if an argument is not needed.
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Executes the specified delegate at the specified priority with the specified argument synchronously on the thread the Dispatcher is associated with.
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
Parameters
- priority
- DispatcherPriority
The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. Once the operation has started, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
- method
- Delegate
A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.
- arg
- Object
An object to pass as an argument to the given method. This can be null
if no arguments are needed.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
- Attributes
Exceptions
priority
is equal to Inactive.
priority
is not a valid priority.
method
is null
.
Remarks
arg
can be null
if an argument is not needed
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(DispatcherPriority, Delegate, Object, Object[])
Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.
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
Parameters
- priority
- DispatcherPriority
The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.
- method
- Delegate
A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.
- arg
- Object
An object to pass as an argument to the given method.
- args
- Object[]
An array of objects to pass as arguments to the given method.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
- Attributes
Exceptions
priority
is equal to Inactive.
priority
is not a valid priority.
method
is null
.
Remarks
arg
can be null
if an argument is not needed
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with.
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)
Parameters
- callback
- Action
An Action delegate to invoke through the dispatcher.
- priority
- DispatcherPriority
The priority that determines the order in which the specified callback is invoked relative to the other pending operations in the Dispatcher.
- cancellationToken
- CancellationToken
An object that indicates whether to cancel the action.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. Once the operation has started, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
Exceptions
callback
is null
.
timeout
is a negative number other than -1, and this method was invoked across threads.
priority
is not a valid priority.
The cancellation token was canceled. This exception is stored into the returned task.
Applies to
Invoke(DispatcherPriority, TimeSpan, Delegate)
Executes the specified delegate synchronously at the specified priority and with the specified time-out value on the thread the Dispatcher was created.
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
Parameters
- priority
- DispatcherPriority
The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. Once the operation has started, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
- method
- Delegate
The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
- Attributes
Exceptions
method
is null
.
timeout
is a negative number other than -1, and this method was invoked across threads.
priority
is equal to Inactive.
priority
is not a valid priority.
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(DispatcherPriority, Delegate, Object)
Executes the specified delegate at the specified priority with the specified argument synchronously on the thread the Dispatcher is associated with.
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
Parameters
- priority
- DispatcherPriority
The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.
- method
- Delegate
A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.
- arg
- Object
An object to pass as an argument to the given method.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
- Attributes
Exceptions
priority
is equal to Inactive.
priority
is not a valid priority.
method
is null
.
Remarks
arg
can be null
if an argument is not needed
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Executes the specified delegate within the designated time span at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.
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
Parameters
- method
- Delegate
A delegate to a method that takes parameters specified in args
, which is pushed onto the Dispatcher event queue.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. Once the operation has started, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
- priority
- DispatcherPriority
The priority, relative to the other pending operations in the Dispatcher event queue, with which the specified method is invoked.
- args
- Object[]
An array of objects to pass as arguments to the given method. Can be null
.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
Exceptions
method
is null
.
timeout
is a negative number other than -1, and this method was invoked across threads.
priority
is equal to Inactive.
priority
is not a valid priority.
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(Delegate, TimeSpan, Object[])
Executes the specified delegate within the designated time span at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.
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
Parameters
- method
- Delegate
A delegate to a method that takes parameters specified in args
, which is pushed onto the Dispatcher event queue.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. However, once the operation starts, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
- args
- Object[]
An array of objects to pass as arguments to the given method. Can be null
if no arguments are needed.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
Exceptions
method
is null
.
timeout
is a negative number other than -1, and you're invoking across threads.
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control won't return to the calling object until after the callback returns.
Applies to
Invoke(Action, DispatcherPriority, CancellationToken)
Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with.
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)
Parameters
- callback
- Action
A delegate to invoke through the dispatcher.
- priority
- DispatcherPriority
The priority that determines the order in which the specified callback is invoked relative to the other pending operations in the Dispatcher.
- cancellationToken
- CancellationToken
An object that indicates whether to cancel the action.
Exceptions
The cancellation token was canceled. This exception is stored into the returned task.
Applies to
Invoke(DispatcherPriority, Delegate)
Executes the specified delegate synchronously at the specified priority on the thread that the Dispatcher is associated with.
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
Parameters
- priority
- DispatcherPriority
The priority with which the specified method is invoked, relative to the other pending operations in the Dispatcher event queue.
- method
- Delegate
A delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
- Attributes
Exceptions
priority
is equal to Inactive.
priority
is not a valid priority.
method
is null
.
Examples
The following example places a delegate onto a Dispatcher at Normal using 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
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(Delegate, Object[])
Executes the specified delegate with the specified arguments synchronously on the thread the Dispatcher is associated with.
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
Parameters
- method
- Delegate
A delegate to a method that takes parameters specified in args
, which is pushed onto the Dispatcher event queue.
- args
- Object[]
An array of objects to pass as arguments to the given method. Can be null
.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke(Action, DispatcherPriority)
Executes the specified Action synchronously at the specified priority on the thread the Dispatcher is associated with.
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)
Parameters
- callback
- Action
A delegate to invoke through the dispatcher.
- priority
- DispatcherPriority
The priority that determines the order in which the specified callback is invoked relative to the other pending operations in the Dispatcher.
Applies to
Invoke(Action)
Executes the specified Action synchronously on the thread the Dispatcher is associated with.
public:
void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)
Parameters
- callback
- Action
A delegate to invoke through the dispatcher.
Remarks
The default priority is DispatcherPriority.Send
.
Applies to
Invoke(Delegate, DispatcherPriority, Object[])
Executes the specified delegate at the specified priority with the specified arguments synchronously on the thread the Dispatcher is associated with.
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
Parameters
- method
- Delegate
A delegate to a method that takes parameters specified in args
, which is pushed onto the Dispatcher event queue.
- priority
- DispatcherPriority
The priority with which the specified method is invoked, relative to the other pending operations in the Dispatcher event queue.
- args
- Object[]
An array of objects to pass as arguments to the given method. Can be null
.
Returns
The return value from the delegate being invoked or null
if the delegate has no return value.
Remarks
In WPF, only the thread that created a DispatcherObject may access that object. For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. This is accomplished by using either Invoke or BeginInvoke. Invoke is synchronous and BeginInvoke is asynchronous. The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.
Invoke is a synchronous operation; therefore, control will not return to the calling object until after the callback returns.
Applies to
Invoke<TResult>(Func<TResult>)
Executes the specified Func<TResult> synchronously on the thread the Dispatcher is associated with.
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
Type Parameters
- TResult
The return value type of the specified delegate.
Parameters
- callback
- Func<TResult>
A delegate to invoke through the dispatcher.
Returns
The value returned by callback
.
Applies to
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with.
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
Type Parameters
- TResult
The return value type of the specified delegate.
Parameters
- callback
- Func<TResult>
A delegate to invoke through the dispatcher.
- priority
- DispatcherPriority
The priority that determines the order in which the specified callback is invoked relative to the other pending operations in the Dispatcher.
Returns
The value returned by callback
.
Applies to
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with.
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
Type Parameters
- TResult
The return value type of the specified delegate.
Parameters
- callback
- Func<TResult>
A delegate to invoke through the dispatcher.
- priority
- DispatcherPriority
The priority that determines the order in which the specified callback is invoked relative to the other pending operations in the Dispatcher.
- cancellationToken
- CancellationToken
An object that indicates whether to cancel the operation.
Returns
The value returned by callback
.
Exceptions
The cancellation token was canceled. This exception is stored into the returned task.
Applies to
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)
Executes the specified Func<TResult> synchronously at the specified priority on the thread the Dispatcher is associated with.
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
Type Parameters
- TResult
The return value type of the specified delegate.
Parameters
- callback
- Func<TResult>
A delegate to invoke through the dispatcher.
- priority
- DispatcherPriority
The priority that determines the order in which the specified callback is invoked relative to the other pending operations in the Dispatcher.
- cancellationToken
- CancellationToken
An object that indicates whether to cancel the operation.
- timeout
- TimeSpan
The maximum amount of time to wait for the operation to start. Once the operation has started, it will complete before this method returns. To specify an infinite wait, use a value of -1. In a same-thread call, any other negative value is converted to -1, resulting in an infinite wait. In a cross-thread call, any other negative value throws an ArgumentOutOfRangeException.
Returns
The value returned by callback
.
Exceptions
callback
is null
.
timeout
is a negative number other than -1, and the method was invoked across threads.
priority
is not a valid priority.
The cancellation token was canceled. This exception is stored into the returned task.