在如下代码中:

public async Task<string> GetData()

{

  return await DoWork();

}

在UI线程中调用

var data = GetData().Result;

此时线程会卡死;

两种解决办法:

1,所有调用方法链中使用async、await方式调用。

var data = await GetData().

2, 去掉调用链中的async,await,直接返回Task类型。

public Task<string> GetData()

{

  return DoWork();

}

原因 Task.Result会直接阻塞当前调用线程,而aysnc、await机制是使用状态机切换上下文,

当调用.Result时,当前线程阻塞,async、await状态机无法切换回线程上下文,导致死锁。

最新文章

  1. 二维码合成,将苹果和安卓(ios和android)合成一个二维码,让用户扫描一个二维码就可以分别下载苹果和安卓的应用
  2. PVANET----Deep but Lightweight Neural Networks for Real-time Object Detection论文记录
  3. 【iCore3 双核心板_FPGA】实验十九:基于双口RAM的ARM+FPGA数据存取实验
  4. 第二个Sprint冲刺第五天
  5. DEVICE DRAW VERTEX BUFFER TOO SMALL
  6. 闲谈前端编码解码、C#编码解码。
  7. Unity3d Shader开发(一)Properties
  8. 【vc】5_文本编程
  9. 初学swift笔记 流程控制(五)
  10. NodeJS,我对“高、高、非”的一些看法
  11. 扣出的图片无法调整大小 photoshop mac版本
  12. 腾讯笔试编程题,贪吃的小Q(二分查找)
  13. ZooKeeper和Curator相关经验总结
  14. 可访问范围 与 visual 或 abstract “修饰符”
  15. G++ C++之区别
  16. 八、mini2440裸机程序之UART(1)简单介绍【转】
  17. 通过 Apache Commons HttpClient 发送 HTTPS 请求
  18. C# 将 Stream 写入文件
  19. apiCloud检出代码出现以下图示错误:
  20. 第一次spring冲刺第9天

热门文章

  1. __next__()
  2. Win10下编译OpenJDK8
  3. yii报错yii\web\Request::cookieValidationKey must be configured with a secret key.
  4. 机器学习-回归中的相关度和R平方值
  5. 2019-11-29-git-需要知道的1000个问题
  6. VMware虚拟机中CentOS/redhat设置固定IP
  7. python cv2的视频检测:睁眼闭眼
  8. python_实现员工信息表
  9. (转) windows 下ORA-12514:TNS 监听问题
  10. Spring mvc项目的web.xml以及注释