绝望的C#:Task是个良好的设计吗?

news2024/9/29 5:24:38

        我对高级语言的异步机制总感到理解起来比较困难。明确的创建任务、等待任务不好吗?

        执行异步调用的方法返回一个Task是很正常的,很容易理解,但是Task.Result为什么导致阻塞呢?

        一个属性,而不是一个方法,竟然导致了阻塞,你们高级语言的思路真是很高级啊。

        好吧,这只是个吐槽。

        下面这个图来自微软learn网站,用来介绍异步方法的运行机制,非常大厂风啊:

        屁大点事画个图眼花缭乱。其实里面只有两个关键点:

  1. client.GetStringAsync发起一个异步任务,一般我们(C/C++派)就称之为“CreateTask...”或者“StartTask...”,这一步不会阻塞。
  2. await getStringTask等待异步任务结束,一般我们就是用个“Wait...”,这一步会阻塞,等待任务结束以便获得结果。

        为了在层层调用中发现是否存在等待而引入新的关键字是可以理解的,毕竟这样做有很大的好处(不然从层层调用里发现哪里阻塞是很头疼的)。

        但是Task的设计是很怪的。Task本身没什么不可理解的,但是Task.Result为什么会阻塞?这只是一个属性啊!检查任务结果和等待任务返回根本就是两个完全不相干的事情,怎么能混在一起呢?仅仅因为语法上支持?

 

(这里是结束)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python算法题集_单词搜索

Python算法题集_单词搜索 题22:单词搜索1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【原始矩阵状态回溯】2) 改进版一【字典检测原始矩阵状态回溯】3) 改进版二【矩阵状态回溯】 4. 最优算法5. 相关资源 本文为Python算法题集之一…

鸿蒙开发案例:进京赶考(5)完结

系列文章目录 鸿蒙开发案例:进京赶考(1) 鸿蒙开发案例:进京赶考(2) 鸿蒙开发案例:进京赶考(3) 鸿蒙开发案例:进京赶考(4) 鸿蒙开…

ifcplusplus 示例 函数中英文 对照分析以及流程图

有需求,需要分析 ifc c渲染,分析完,有 230个函数,才能完成一个加载,3d加载真的是大工程! 示例代码流程图 函数中英文对照表,方便 日后开发,整理思路顺畅!!&am…

KubeSphere平台安装系列之三【Linux多节点部署KubeSphere】(3/3)

**《KubeSphere平台安装系列》** 【Kubernetes上安装KubeSphere(亲测–实操完整版)】(1/3) 【Linux单节点部署KubeSphere】(2/3) 【Linux多节点部署KubeSphere】(3/3) **《KubeS…

个人项目介绍2:地球卫星篇

项目需求: 在项目中显示三维地球及主要城市标注,接收服务端发来的实施卫星数据,显示卫星姿态角,陀螺角,飞轮等数据;可自定义模拟产生更多卫星轨迹;可模拟显示卫星躲避陨石动画;可展…

【文献管理】zotero插件4——获取知网pdf、中文文献识别与目录生成

文章目录 zotero获取知网PDFzotero——中文文献识别(茉莉花插件)学位论文目录生成 zotero获取知网PDF zotero——中文文献识别(茉莉花插件) 为下载的学位论文添加目录中文文献识别:jasminum 下载pdflabs下载茉莉花插…

标准库中的String类 String(C++)【3】

文章目录 String常用的接口(黑框标记的是常用接口)数据访问operator:at:back:front: 数据修改push_back:append:operator:assigen:insert:erase:replace:注意事项 String常用的接口(黑框标记的是常用接口) 数据访问 operator: 返…

智能物联时代下RFID技术在汽车零部件智能制造中的引领作用

RFID(Radio Frequency Identification,射频识别)技术在汽车零部件加工中有广泛的应用,其工作原理是通过无线电频率进行自动识别。在汽车零部件加工中,RFID技术可以发挥重要作用,提高生产效率、降低成本和减…

【5G 接口协议】GTP-U协议介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

【虚拟机安装centos7后找不到网卡问题】

最近开始学习linux,看着传智播客的教学视频学习,里面老师用的是centos6.5,我这边装的是centos7最新版的 结果到了网络配置的这一节,卡了我好久。 我在centos一直找不到我的网卡eth0,只有一个回环网口,在/…

集成2.5G/5G/10G高速率网络变压器的RJ45网口连接器产品特点介绍

Hqst华轩盛(石门盈盛)电子导读:集成2.5G/5G/10G高速率网络变压器的RJ45网口连接器产品特点介绍: 第一、 高速率:支持高达2.5Gbps、5Gbps和10Gbps的传输速率,能够满足高带宽的网络应用需求。 第二、 集成2.5G/5G/10G高速率网…

编写dockerfile挂载卷、数据容器卷

编写dockerfile挂载卷 编写dockerfile文件 [rootwq docker-test-volume]# vim dockerfile1 [rootwq docker-test-volume]# cat dockerfile1 FROM centosVOLUME ["volume01","volume02"]CMD echo "------end------" CMD /bin/bash [rootwq dock…

Spring框架相关问题

Spring框架相关问题 一、Spring容器中的Bean是线程安全的吗?二、如何保证Spring容器中的Bean是线程安全的呢?三、什么情况下会触发Spring事务回滚?四、如果事务方法抛出IOException,是否会触发Spring事务回滚?五、什么…

在线简历制作网站免费推荐收藏备用

今天给大家推荐一个很实用的网站,对于要毕业的同学或者说跳槽的朋友比较有作用,对,就是一个免费方便的在线简历制作网站。其实免费的简历制作网站很多,但好用的良心的其实并不多,今天要推荐的这个虽然模板不算多&#…

1.2 在卷积神经网络中,如何计算各层感受野的大小

1.2 在卷积神经网络中,如何计算各层感受野的大小 分析与解答: 在卷积神经网络中,由于卷积的局部连接性,输出特征图上的每个节点的取值,是由卷积核在输入特征图对应位置的局部区域内进行卷积而得到的,因此这…

sql注入之sqli-labs/less-3 单引号加括号闭合

输入单引号试探: id1 报错信息里面出现 ) 说明闭合符合里面还有个 ) 再次试探:id1 ) order by 3 -- 查看回显位置: id-1%20%27)%20union%20select%201,2,3%20-- 查看数据库: id-1%20%27)%20union%20select%201,2,database()%2…

PDF 解析问题调研

说点真实的感受 :网上看啥组件都好,实际测,啥组件都不行。效果好的不开源收费,开源的效果不好。测试下来,发现把组件融合起来,还是能不花钱解决问题的,都是麻烦折腾一些。 这里分享了目前网上能…

幻兽帕鲁专用服务器搭建之Linux部署配置教程

大家好我是飞飞,上一期我分享了Windows系统的幻兽帕鲁服务器搭建教程。因为幻兽帕鲁这游戏对服务器的配置有一定的要求,很多小伙伴就寻思用Linux系统搭建占用会不会小一点?有计算机基础的小伙伴都知道Linux系统和Windows系统相比,…

Git实战(2)

git work flow ------------------------------------------------------- ---------------------------------------------------------------- 场景问题及处理 问题1:最近提交了 a,b,c,d记录,想把b记录删掉其他提交记录保留: git reset …

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…