二十、异步调用的问题
问题描述:
我们在SampleDataSource的构造函数中,将里边的示例代码全部删除,然后添加异步方法LoadFile,即
public SampleDataSource(){LoadFile();},但是运行结果却是Group的数据被加载了,但是其中的数据项未被加载,也就是说数据不显示。原因:这是典型的异步调用错误。原因也很简单,是因为SampleDataSource的构造函数是同步调用,不会等LoadFile结束后再返回,所以,当界面上显示数据时,显示的只是未加载完成的数据列表。解决方法:方法一:由于构造函数无法变成async调用方法,所以只能用另外的一个显式初始化函数来替代构造函数的作用,在数据显示之前,显式地调用该初始化函数。所以,我就直接将LoadFile作为这个初始化函数,为LoadFile增加public,static和async关键字。然后,我们打开GroupItemsPage.xaml.cs文件,找到LoadState方法。该方法用来设置当前视图的数据源,所以,我们在LoadState方法的顶部显式调用SampleDataSource.LoadFile方法。当然,我们会得到一个编译错误,因为LoadState方法也是一个同步调用函数,简单地为LoadState方法增加一个async的关键字就可以解决这个问题。方法二:public SampleDataSource()
{
_LoadFile();
}private async Task _LoadFile()
{
await LoadFile();
},
转载于:https://www.cnblogs.com/suinuaner/archive/2013/01/23/twenty.html
二十、异步调用的问题相关推荐
- Dapr + .NET 实战(十二)服务调用之GRPC
欢迎大家参加4小时Dapr+.NET 5的实战课程 课程链接 https://ke.qq.com/course/4000292?tuin=1271860f 什么是GRPC gRPC 是一种与语 ...
- spring boot 1.5.4 定时任务和异步调用(十)
1 Spring Boot定时任务和异步调用 我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参 ...
- (二)线程--通过委托异步调用方法
(一).描述 先运行个简单的线程示例,认识一下线程 通过委托调用方法,以及使用AsyncResult判断线程的状态 (二).代码 using System; using System.Thre ...
- WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...
- springboot定时发送短信_spring boot 1.5.4 定时任务和异步调用(十)
1Spring Boot定时任务和异步调用 我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. sp ...
- 浅谈WebService开发二(同步与异步调用)转
上文 <http://www.dotnetgeek.cn/xuexiwebservice1.html>已经跟大家说了,如果创建一个webservice和简单的调用,本文将注重webserv ...
- C# 委托高级应用----线程——创建无阻塞的异步调用(二)
了解IAsyncResult 现在我们已经了解,EndInvoke可以给我们提供传出参数与更新后的ref参数:也可以向我们导出异步函数中的异常信息.例如,我们使用BeginInvoke调用了异步函数S ...
- linux exec 二程序,二十五、Linux 进程与信号---exec函数
25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...
- 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)
一. 背景 在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并 ...
最新文章
- TensorFlow入门(一)基本用法
- 概率分布函数的关系框架
- 虚拟机VMware安装centos7详细步骤
- cocos2d-x的popScene的动画效果
- php顶级框架,10个顶级PHP开源项目「2019」
- 002.FTP配置项详解
- java的实例变量_JAVA语言中的实例变量
- 8080端口号被占用的解决方法
- 在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
- Vue2.0 的 Material Design UI 组件库 Muse-UI
- 【操作系统】内存管理
- 论文笔记(精读文章) - Invisible Backdoor Attack with Sample-Specific Triggers
- LeetCode-只出现一次的数字-哈希表-异或-py
- yarn安装依赖速度太慢的解决办法
- 浏览器访问百度www.baidu.com过程
- 风清月明,山清水明,心清志明,思清念明
- 怎么知道创元网配资平台靠不靠谱?
- git(7)自定义 Git
- F - 程序设计:掎角之势 计蒜客 - A2226 (求三角形四心坐标的方法/求内切圆、外接圆面积的方法)
- MC服安装Geyser使基岩版玩家进入JE服务器
热门文章
- 【教程】瘦AP升级为胖AP的终极大法
- Kubernetes 入门必备云原生发展简史
- 树莓派该文件名_树莓派学习笔记(2):常用linux命令
- Jmeter之逻辑控制器操作
- 轴添加点击事件_Q群答疑丨如何批量修改Revit轴网编号,为它添加前缀?
- html 关键帧作标记,关键帧有什么用?
- python编程基础题库_大学moocPython编程基础题库及答案
- 全国计算机二级考试vf知识点总结,VF全国计算机等级考试二级公共基础知识点总结.doc...
- java stream 多个filter_恕我直言你可能真的不会java第3篇:Stream的Filter与谓词逻辑...
- java list负载_java集合的扩容和负载因子的总结