C#异步编程

参考资料:c#文档-微软

简单介绍c#异步编程

在后端开发中。异步编程允许程序在等待某些耗时操作(如网络请求、文件 I/O、数据库查询等)完成时,继续执行其他任务,从而提高程序的性能和响应能力。与同步编程相比,异步编程可以显著减少资源的浪费,提高系统的吞吐量。

与同步编程相比,异步编程的优势

复制代码
提高性能:
    资源利用率:异步编程允许程序在等待耗时操作时释放资源(如 CPU),从而提高资源利用率。
    并发处理:多个异步操作可以并发执行,提高系统的吞吐量。

改善用户体验:
    响应性:在用户界面应用程序中,异步编程可以保持界面的响应性,避免因长时间操作导致的界面卡顿。

避免阻塞:
    非阻塞性:异步编程避免了长时间的阻塞操作,使得程序更加高效和灵活。

应用场景:如果需要 I/O 绑定(例如从网络请求数据、访问数据库或读取和写入到文件系统),/还可以使用 CPU 绑定代码(例如执行成本高昂的计算),都可以编写异步代码。

异步编程的核心是 Task 和 Task 类,这两个对象对异步操作建模。 它们受关键字 async 和 await 的支持。 在大多数情况下模型十分简单:

复制代码
对于 I/O 绑定代码,等待一个在 async 方法中返回 Task 或 Task<T> 的操作。
对于 CPU 绑定代码,等待一个使用 Task.Run 方法在后台线程启动的操作。

async 和 await 关键字

复制代码
async:修饰一个方法,表示该方法是异步的。
await:用于等待一个异步操作完成,而不阻塞当前线程。

Task 和 Task

复制代码
Task:表示一个不返回结果的异步操作。
Task<T>:表示一个返回类型为 T 的异步操作。

示例:待写入

相关推荐
§ꦿCFོ༉9 小时前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习
投图匠10 小时前
十种不同风格的 CTP接口 框架
开发语言·python
爱笑的k1113 小时前
nano-vllm 源码剖析:千行 Python 手写离线推理引擎的调度、显存与并行时序
开发语言·python·vllm
用户37215742613513 小时前
C# 提取 PDF 附件:包括文档附件和页面注释附件
c#
寂寞的船14 小时前
【Unity Bug挑战】第12期 Awaitable 二次 await 死锁之谜 —— 为什么同一个异步操作等两次就卡死?
unity·c#·游戏引擎·bug
X1A0RAN14 小时前
PPT 图片批量处理教程:导出全部幻灯片 · 提取全部素材
开发语言·javascript·powerpoint
熊猫钓鱼>_>15 小时前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos
瑞雪兆丰年兮15 小时前
JavaWeb-day13-SpringBootWeb事务管理&AOP
java·开发语言·springboot·javaweb·事务·web·aop
布莱克60517 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
布莱克60517 小时前
Swift 可选类型(Optionals)详解:从原理到实战
开发语言·安全·ssh·swift·optional·可选类型