log*_*eks 9 .net c# wpf callback dispatcher
当函数以Dispatcher.BeginInvoke启动完成时,我需要使用回调函数来执行一些后处理任务.但是我在Dispatcher.BeginInvoke中找不到任何参数来接受回调.可以给Dispatcher.BeginInvoke提供一个回调函数吗?
dle*_*lev 12
DispatcherOperation返回的对象上BeginInvoke有一个Completed事件.订阅完成后执行操作:
var dispatcherOp = Dispatcher.BeginInvoke( /* your method here */);
dispatcherOp.Completed += (s, e) => { /* callback code here */ };
Run Code Online (Sandbox Code Playgroud)
在您订阅之前,操作有可能完成,因此您也可以在Status完成后测试该属性:
if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... }
Run Code Online (Sandbox Code Playgroud)
操作也可能中止,因此处理/测试Aborted也可能是合适的.