BeginInvoke returns a DispatcherOperation object when it is called.
The DispatcherOperation object can be used to interact with the delegate on the Dispatcher queue, such as changing the priority of the operation or aborting the operation.
To obtain the return value of the invoked delegate, use the Result property.
The DispatcherOperation is not an exception handling boundary. This means that exceptions are handled by the Dispatcher and are not preserved by the operation.