news 2026/5/1 7:16:39

C#异步编程之async、await

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#异步编程之async、await

前言

在C#编程种经常听过异步编程,本文就来以一个实际案例来讲解异步编程中async、await的用法。我们要实现也给需求,点击界面按钮后,五秒后界面的Lable控件的值被赋值为“123”,下面分别介绍4种方法。

1、方法1

下面的代码中UI线程卡5秒后,label1的值被更新为“123”,最终的结果虽然实现了,但是当你点击按钮后,界面也会卡5秒。

privatevoidbutton1_Click(objectsender,EventArgse){Thread.Sleep(5000);label1.Text="123";}

2、方法2

下面的代码由于 Task.Delay是异步任务,所以不卡阻塞UI线程,但是同时 label1也会被立即更新,所以并不能实现5秒后更新UI的功能。
private void button2_Click(object sender, EventArgs e)
{
Task.Delay(5000);//不会阻塞当前线程
label1.Text = “123”;
}

3、方法3

下面的代码使用 Task.Run让任务处在线程池中运行,所以也不会卡界面,,并且延时5秒后,可以更新Lable的Text属性,这里需要注意的是因为Task.Run里面的任务已经不在UI线程了,所以需要使用委托跨线程更新界面,这个方法可以达到我们的目的而且不卡界面,但是代码量挺多。

privatevoidbutton3_Click(objectsender,EventArgse){Task.Run(()=>{Thread.Sleep(5000);this.Invoke(newAction(()=>{label1.Text="123";}));});}

4、方法4

下面的代码中,使用async关键字将方法标记为异步方法,然后使用await关键字标记一个任务,被await关键字标记的任务代码执行后,代码立即切换回调用异步方法的线程(这里是UI线程),并且不会立即执行await所在的方法中在await标记的任务之后的代码,也就是下图中的 label1.Text = “123”,这句更新界面的代码要等到await关键字标记的任务完成以后才会执行,而且执行的时候已经切换回UI线程,所以这里也不需要跨线程更新界面。所以下面的代码结合async和await关键字就可以很好的实现异步方法更新界面并且不让界面卡顿。

privateasyncvoidbutton4_Click(objectsender,EventArgse){awaitTask.Delay(5000);label1.Text="123";}

马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》
7、《C#操作MySql数据库从入门到精通》

以上教程CSDN订阅已超过2000+~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:16:38

论文生成PPT工具排行榜:10大软件+一键转化推荐

论文生成PPT工具排行榜:10大软件一键转化推荐 工具速览对比表 工具名称 核心功能 生成速度 适用场景 特色亮点 Aibiye 论文转PPT智能排版 5-10分钟 学术汇报/毕业答辩 支持自动提取论文关键图表 Aicheck 初稿一键转PPT 15分钟 快速制作基础PPT 内置院…

作者头像 李华
网站建设 2026/4/28 0:29:59

文科论文摘要工具推荐:9大软件+AI润色排名

工具核心特点对比速览 工具名称 核心功能 适用场景 独特优势 aibiye 论文摘要生成 快速获取研究框架 学术语言精准度高 aicheck 降重与AI痕迹检测 论文查重与修改 保留专业术语的智能降重 askpaper 文献阅读辅助 文献综述撰写 快速提取核心观点 秒篇 全文快速…

作者头像 李华
网站建设 2026/4/30 12:09:25

宠物用品商拍福音!AI指令改图,一键生成宠物互动场景图

电商卖宠物产品,竞品图自带询单量,你家图质感在线却没流量?关键是缺场景故事感铲屎官下单前最关心:毛孩子用得开心吗?放家里合适吗?白底图只能展示产品,没法让买家脑补使用场景。可拍宠物互动场…

作者头像 李华
网站建设 2026/4/25 4:43:33

谷歌正与Meta合作,扩大对AI芯片的软件支持

来源:维度网 谷歌正在推进一项名为"TorchTPU"的内部计划,目的是提升其人工智能芯片对全球最广泛使用的AI软件框架PyTorch的兼容性。 与过去支持PyTorch的尝试相比,谷歌此次投入了更多组织资源和战略重视。随着越来越多企业希望采用…

作者头像 李华
网站建设 2026/4/29 20:59:00

fastlane 结合 appuploader 命令行实现跨平台上传发布 iOS App

在自动化发布 iOS 应用这件事上,fastlane 几乎是默认选项。只要团队以 macOS 为中心,构建、签名、上传一条线走完,体验并不差。但当项目开始引入 CI、多系统协作,或者希望把“构建”和“上传”拆开时,fastlane 的前提条…

作者头像 李华
网站建设 2026/5/1 4:52:09

视频直播点播平台EasyDSS构建高并发、低延迟的远程教学直播新模式

随着在线教育的常态化推进,远程教学已成为学校教育与职业培训的重要补充形式。无论是K12阶段的同步课堂、高校的公开课直播,还是企业的内部培训,都对视频直播的稳定性、互动性、多终端适配性提出了严苛要求。EasyDSS作为一款成熟的视频直播点…

作者头像 李华