C# 如何将回调函数赋予Dispatcher.BeginInvoke
当使用Dispatcher.BeginInvoke启动的函数完成时,我需要使用回调函数来执行一些后期处理任务。但是,我在Dispatcher.BeginInvoke中找不到任何参数来接受回调。是否可以向Dispatcher.BeginInvoke提供回调函数?由C# 如何将回调函数赋予Dispatcher.BeginInvoke,c#,.net,wpf,callback,dispatcher,C#,.net,Wpf,Callback,Dispatcher,当使用Dispatcher.BeginInvoke启动的函数完成时,我需要使用回调函数来执行一些后期处理任务。但是,我在Dispatcher.BeginInvoke中找不到任何参数来接受回调。是否可以向Dispatcher.BeginInvoke提供回调函数?由BeginInvoke返回的DispatcherOperation对象上有一个已完成的事件。订阅完成后执行操作: var dispatcherOp = Dispatcher.BeginInvoke( /* your method here
BeginInvoke
返回的DispatcherOperation
对象上有一个已完成的事件。订阅完成后执行操作:
var dispatcherOp = Dispatcher.BeginInvoke( /* your method here */);
dispatcherOp.Completed += (s, e) => { /* callback code here */ };
操作可能会在订阅之前完成,因此您可以测试Status
属性,以便在订阅之后完成:
if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... }
操作也可能会中止,因此处理/测试中止的也可能是合适的。请注意,这在Windows Phone 7、8和Silverlight上不可用:(