WPF 的 await Application.Current.Dispatcher.InvokeAsync,Func 如果是Task , 等待赋值可能存在没有等待执行完成的问题

news/2024/11/16 11:27:56/文章来源:https://www.cnblogs.com/wuty/p/18377474

最近在检查我们组内的代码,发现好多用到

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>)

 

 执行的结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/786460.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dotnet 默认创建的 JsonContent 没有 Content Length 的内容头

本文记录一个 dotnet 的设计问题,默认创建出来的 JsonContent 对象的 Headers 里,是没有 Content-Length 信息的如下面代码创建一个 JsonContent 对象 using System.Net.Http.Json;var foo = new Foo();var jsonContent = JsonContent.Create(foo);class Foo {public int Val…

《Programming from the Ground Up》阅读笔记:p95-p102

《Programming from the Ground Up》学习第6天,p95-p102总结,总计8页。 一、技术总结 1.directive(伪指令) 很多资料喜欢把directive和instruction都翻译成“指令”,这样在看到指令这个词时就不知道到底指的是什么?这里参考其它人的做法,将directive称为“伪指令”。 2.re…

如何在 Nuxt 中动态设置页面布局

title: 如何在 Nuxt 中动态设置页面布局 date: 2024/8/24 updated: 2024/8/24 author: cmdragon excerpt: 摘要:本文介绍如何在Nuxt框架中通过设置setPageLayout函数动态调整页面布局,包括安装Nuxt、创建不同布局文件及中间件,并通过示例演示如何根据不同路径设置相应布局…

牛客小白月赛99

牛客小白月赛99\(A\) 牛客 NC275617 材料打印 \(AC\)\(by+a \times \min(x,y)\) 即为所求。点击查看代码 int main() {ll t,a,b,x,y,i;cin>>t;for(i=1;i<=t;i++){cin>>a>>b>>x>>y;cout<<b*y+a*min(x,y)<<endl;}return 0; }\(B\) …

SQL Server 数据库 优化 性能瓶颈

优化sql查询,分库分表,读写分离。 建立索引,分页,时间段不要太长(限制数量)。 升级电脑:固态硬盘,多个cpu,万兆网口。 超级大表等优化。一查询,磁盘 100%lock select * from xx (nolock) 预防为主,测试为重。 建立模拟环境(测试环境),一模一样的应用环境,提前测…

线性dp:大盗阿福(打家劫舍)

大盗阿福本题与leetcode198题——打家劫舍的题意一模一样,阅读完本文以后可以尝试以下题目力扣题目链接) 题目叙述: 阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有N家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时…

Nexpose v6.6.266 for Linux Windows - 漏洞扫描

Nexpose v6.6.266 for Linux & Windows - 漏洞扫描Nexpose v6.6.266 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Aug 21, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:…

扫描线总结

扫描线是线段树的典型应用。这玩意不难,用途也比较狭窄,重点在理解思想。例 0 【模板】扫描线 题意 求 \(n\) 个四边平行于坐标轴的矩形的面积并。 对于 \(100\%\) 的数据,\(1 \le n \le {10}^5\),\(0 \le x_1 < x_2 \le {10}^9\),\(0 \le y_1 < y_2 \le {10}^9\)。…

Pollard-Rho学习笔记

1.利用最大公约数求出一个约数 n和某个数的公约数一定是n的约数,即\(\forall k \in\mathbf{N}_{+},\gcd(k,n) \mid n\),只要选取适当的k使得\(1<\gcd(k,n)< n\),,就能够求得n的一个约数 满足这个条件的k很多,n的因数的大部分倍数都可行 我们通过\(f(x)=(x^2+c)\bmod…