C#里await Task.Run死锁的分析与解决

embedded/2025/1/18 20:17:23/

一段如下的代码,它是必然死锁的:

        private  void button1_Click(object sender, EventArgs e){Task<string> res =  GetResAsync();textBox1.Text =  res.Result;}private async Task<string> GetResAsync(){string t = await Task.Run(() => {Thread.Sleep(1000);return "返回结果1";});return t;}

在这段代码里,GetResAsync()函数是使用await Task.Run来等线程任务执行返回一个字符串结果。
因此在textBox1.Text =  res.Result里想获取结果显示。
那么就需要执行res.Result。
执行res.Result时,需要等线程执行结果,它采用一个wait函数等线程完成。
因为在前面await Task.Run已经在等线程去执行,这时就会造成死锁。

要解决上述的问题,只有两


http://www.ppmy.cn/embedded/155031.html

相关文章

前缀和 (一维 二维)

前缀和作用&#xff1a; 快速求出原数组中一段数组的和 思路 1.预处理前缀和数组 2.用公式求区间和 公式&#xff1a; 二维前缀和&#xff1a; s [ i ] [ j ] s[ i - 1 ] [ j ] s[ i ] [ j - 1 ] - s [ i - 1 ] [ j - 1]; 题型 一维 二维 题解 一维 #include <iost…

当前目录不是一个git仓库/远程仓库已经有了一些你本地没有的更改

目录 问题1&#xff1a;问题2&#xff1a;解决1解决2 问题1&#xff1a; fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). # 初始化 Git 仓库 git init需要到本地目录下先添加…

服务器卡顿是否等同于遭受CC攻击?

在网站运营或应用服务过程中&#xff0c;遇到服务器响应缓慢或者卡顿时&#xff0c;很多管理员的第一反应是可能遭遇了CC&#xff08;Challenge Collapsar&#xff09;攻击。但实际情况往往更为复杂。本文将探讨服务器卡顿与CC攻击之间的关系&#xff0c;并提供一些基本的排查方…

云产品评测|阿里云服务诊断

文章目录 关于云服务诊断快速使用诊断功能诊断的定义诊断的意义诊断操作 建议与优化 大家好我是令狐&#xff0c;一名软件研发工程师。今天给大家介绍阿里云服务的诊断工具使用与体会&#xff0c;如果你也在使用阿里云服务&#xff0c;这会大大节省你定位问题的效率&#xff0c…

MySQL root用户密码忘记怎么办(Reset root account password)

在使用MySQL数据库的的过程中&#xff0c;不可避免的会出现忘记密码的现象。普通用户的密码如果忘记&#xff0c;可以用更高权限的用户&#xff08;例如root&#xff09;进行重置。但是如果root用户的密码忘记了&#xff0c;由于root用户本身就是最高权限&#xff0c;那这个方法…

web组态可视化编辑器

随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说&#xff0c;将单机版软件转…

Android string.xml中特殊字符转义

项目中要在string.xml 中显示特殊符号 空格&#xff1a; &#xff08;普通的英文半角空格但不换行&#xff09; 窄空格&#xff1a;  &#xff08;中文全角空格 &#xff08;一个中文宽度&#xff09;&#xff09; &#xff08;半个中文宽度&#xff0c;但两个空格比一个中文…

数据仓库的复用性:流程层面

在数据仓库建设中&#xff0c;流程层面的复用性 是提高开发效率和数据质量的关键。通过标准化ETL流程、模块化设计&#xff0c;以及实时与离线共用的架构&#xff0c;可以最大化数据处理流程的复用性&#xff0c;降低复杂度。以下是详细的介绍和落地方案。 1. 标准化ETL流程 1…