WPF 的 await Application.Current.Dispatcher.InvokeAsync,Func 如果是Task , 等待赋值可能存在没有等待执行完成的问题
最近在检查我们组内的代码,发现好多用到
await Application.Current.Dispatcher.InvokeAsync
相信好多WPF的开发都会用到 该方法做UI线程切换。但是细看里边的执行,发现了个别存在存在没有等待完成的情况


执行的结果是 i 为 null 值。
这也就说明了 执行了
await Application.Current.Dispatcher.InvokeAsync
,其实还没有完成等待完成,AI提示返回的是 DispatcherOperation<Task> 的 返回结果
反编译导航进去

对于执行 Func<T> callback 回调的,返回的是DispacherOperation<Func<Task>>
也就是说,要正在执行完成该函数,需要在 await Task<T> ,才能 拿到TResult 的结果
所以,解决的方法如下:
await await Application.Current.Dispatcher.InvokeAsync(Func<Task>)

执行的结果:

WPF 的 await Application.Current.Dispatcher.InvokeAsync,Func 如果是Task , 等待赋值可能存在没有等待执行完成的问题的更多相关文章
- WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null
原文:WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 在 WPF 程序中,可能会存在 Application.Current.D ...
- WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null
原文:WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 在 WPF 程序中,可能会存在 Application.Curren ...
- System.Windows.Application.Current.Dispatcher.BeginInvoke
System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => ...
- WPF入门教程系列四——Dispatcher介绍
一.Dispatcher介绍 微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢? 不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以 ...
- win10 uwp Window.Current.Dispatcher中Current为null
本文说的是进行网络中异步界面出现的错误,可能带有一定的主观性和局限性,说的东西可能不对或者不符合每个人的预期.如果觉得我有讲的不对的,就多多包含,或者直接关掉这篇文章,但是请勿生气或者发怒吐槽,可以在 ...
- 2018-8-10-win10-uwp-Window.Current.Dispatcher中Current为null
title author date CreateTime categories win10 uwp Window.Current.Dispatcher中Current为null lindexi 201 ...
- WPF中Application.Current的使用
WPF程序对应一个Application对象,当前的Application对象可以通过Application.Current获取,通过获取到的Application对象,我们可以做以下的事情: App ...
- Application.Current的使用
来源 http://www.cnblogs.com/symons/archive/2010/03/15/1686200.html Application.Current的使用 WPF程序对应一个App ...
- WPF中的Application类。
原文:WPF中的Application类. Application对象用的名称空间是system.windows 1.手动创建Application对象步骤. 1.1).把项目中的App.Xaml文件 ...
- A candidate solution for Java Web Application - current session
Motivation Do it once, resue for ever. Audience myself, Java Web developers Scope 应用案例 图书借阅系统 阶段1需求: ...
随机推荐
- 关于我在使用Steamlit中碰到的问题及解决方案总结
Steamlit 并不支持一个可以预览本地文件的路径选择器(并不上传文件) 解决方案:使用 Python 自带的 tkinter 来完成 参考:[Streamlit 选择文件夹的曲折方案]Stream ...
- AI与.NET技术实操系列(二):开始使用ML.NET
引言 在当今技术飞速发展的时代,机器学习(Machine Learning, ML)已成为推动创新和变革的核心力量.从智能推荐系统到自动化决策工具,ML的应用无处不在,深刻影响着我们的生活和工作方式. ...
- Windows 提权-RunAs
本文通过 Google 翻译 RunAs – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. 导航 0 前言 ...
- AI 实践|零成本生成SEO友好的TDK落地方案
之前写过一篇文章「Google搜索成最大入口,简单谈下个人博客的SEO」,文章里介绍了网页的描述信息TDK(Title.Description和Keywords)对SEO的重要作用,尽管已经意识到了T ...
- Selenium KPI接口 iframe切换
应用场景: 在编写脚本的时候,经常会发现最熟悉的错误"元素定位不到",此时如果你查看页面元素,有可能你会发现元素在>标签对之间. 此时,我们只有先将代码驱动切换到frame内 ...
- 实现Windows之间(win10)的桌面连接的三步走方法
实现Windows之间(win10)的远程桌面连接的三步走方法 目录 目录 实现Windows之间(win10)的远程桌面连接的三步走方法 目录 环境 step1:打开两台Windows电脑的 ...
- helm install 从多种源进行安装
Helm 提供了多种方法来从不同的源安装 charts.以下是一些常见的安装方法: Helm官方仓库 从 Helm 官方仓库(Helm Hub)安装:Helm Hub 是 Helm 官方维护的一个公共 ...
- pandas -- 处理非数值型数据 -- 数据分析三剑客(核心)
博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jup ...
- Panabit 流控软件的使用教程
Flow control software-Panabit Howto Version 1.0.0 Date 2010-11-21 Author ipcpu Website http://www.ip ...
- ajax 多次请求相同链接 相同参数,缓存问题
经常会发现,ajax 多次调用同一个接口时(get),参数不变. 为了提升性能,浏览器就不会和服务器进行交互,获取到的数据 就不会发生变化 解决方案:添加随机参数.或者时间戳 类似在接口后面 添加 D ...