async await task.Result 卡死
2024-10-21 03:26:47
在如下代码中:
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状态机无法切换回线程上下文,导致死锁。
最新文章
- 二维码合成,将苹果和安卓(ios和android)合成一个二维码,让用户扫描一个二维码就可以分别下载苹果和安卓的应用
- PVANET----Deep but Lightweight Neural Networks for Real-time Object Detection论文记录
- 【iCore3 双核心板_FPGA】实验十九:基于双口RAM的ARM+FPGA数据存取实验
- 第二个Sprint冲刺第五天
- DEVICE DRAW VERTEX BUFFER TOO SMALL
- 闲谈前端编码解码、C#编码解码。
- Unity3d Shader开发(一)Properties
- 【vc】5_文本编程
- 初学swift笔记 流程控制(五)
- NodeJS,我对“高、高、非”的一些看法
- 扣出的图片无法调整大小 photoshop mac版本
- 腾讯笔试编程题,贪吃的小Q(二分查找)
- ZooKeeper和Curator相关经验总结
- 可访问范围 与 visual 或 abstract “修饰符”
- G++ C++之区别
- 八、mini2440裸机程序之UART(1)简单介绍【转】
- 通过 Apache Commons HttpClient 发送 HTTPS 请求
- C# 将 Stream 写入文件
- apiCloud检出代码出现以下图示错误:
- 第一次spring冲刺第9天
热门文章
- __next__()
- Win10下编译OpenJDK8
- yii报错yii\web\Request::cookieValidationKey must be configured with a secret key.
- 机器学习-回归中的相关度和R平方值
- 2019-11-29-git-需要知道的1000个问题
- VMware虚拟机中CentOS/redhat设置固定IP
- python cv2的视频检测:睁眼闭眼
- python_实现员工信息表
- (转) windows 下ORA-12514:TNS 监听问题
- Spring mvc项目的web.xml以及注释