Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将回调函数赋予Dispatcher.BeginInvoke_C#_.net_Wpf_Callback_Dispatcher - Fatal编程技术网

C# 如何将回调函数赋予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

当使用Dispatcher.BeginInvoke启动的函数完成时,我需要使用回调函数来执行一些后期处理任务。但是,我在Dispatcher.BeginInvoke中找不到任何参数来接受回调。是否可以向Dispatcher.BeginInvoke提供回调函数?

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上不可用:(