c# - 如何为 Dispatcher.BeginInvoke 提供回调函数

标签 c# .net wpf callback dispatcher

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

最佳答案

BeginInvoke 返回的 DispatcherOperation 对象有一个 Completed 事件。订阅它以在完成时执行操作:

var dispatcherOp = Dispatcher.BeginInvoke( /* your method here */);
dispatcherOp.Completed += (s, e) => { /* callback code here */ };

操作有可能在您订阅之前完成,因此您也可以在之后测试 Status 属性是否完成:

if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... }

操作也有可能被中止,因此处理/测试 Aborted 也可能是合适的。

关于c# - 如何为 Dispatcher.BeginInvoke 提供回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7354367/

相关文章:

wpf - 如何 bool 值&& 两个可见性转换器

wpf - 确定谁在 WPF 窗口中有焦点

c# ms 图表 : how do i count how many data points i have?

c# - 在 C# 中使用 Newtonsoft 反序列化嵌套的 Json 数据并分配给变量

c# - 插件中的 CRM 365 callManagerInfo 错误

c# - nuget 包安装生成的空数据上下文

.net - 有没有办法识别一个人是否属于 Active Directory 中的指定组,即使该组有几个级别深

c# - 了解 DependencyProperty 的工作原理和实现方式

c# - 在 iframe 中使用 RedirectToAction 后,ASP.NET MVC session 会重置

c# - 并行化/多线程单例对象方法调用