net异步操作总结和比较


以下是个人理解:

Compute 主要指的是CPU密集型或者是其他计算密集型的操作

I/O 这里指的是操作文件或者网络等适用的异步情况

父子依赖指的是 一个任务是不是依赖于其他任务的状态而执行(例如A任务完成取消或者异常的时候 B任务执行)

取消: 一个任务开始以后是否能够被终止

等待:能否block住当前线程以等待异步操作的完成(是否有内置功能支持)

超时:能否对异步任务设置超时时间

返回值和异常:能否处理异步任务的返回值和异常(是否有内置功能支持)

 

 

异步方式

主要应用

Emulate Secondary

via What?

 

父子依赖关系

进度报告

取消

等待

超时

返回值和异常

 QueueUserWorkItem

Compute

 Sync I/O

 NO

 NO

 NO

 NO

 NO

 NO

 Timer

 

Compute

 Sync I/O

 NO

 NO

 Dispose 方法

 NO

 YES

 NO

 RegisterWaitForSingleObject

Compute

  Sync I/O

 NO

 NO

 注销事件

 NO

 YES

 NO

 Tasks

Compute

 Sync I/O 

TaskComletionSource

 

Task.Scheduler的 FromAsync

 YES

 NO

 应用于Compute的时候要早于Task启动或者Task支持取消方法

应用于I/O:丢弃结果

 YES

 YES

 YES

 IAsyncResult

 I/O

 Delegate.BeginInvoke

 NO

 NO

 NO

 YES

 NO

 YES

 Event-Base

 I/O

 BackgroundWorker

 NO

 SOME

 有些类型支持丢弃结果

 NO

 NO

 YES

 AsyncEnumerator

 I/O

 Delegate.BeginInvoke

 NO

 NO

 YES

 NO

 YES

 YES

posted on   听说读写  阅读(647)  评论(0编辑  收藏  举报

努力加载评论中...
编辑推荐:
· [杂谈]如何选择:Session 还是 JWT?
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
· [杂谈]后台日志该怎么打印
· Pascal 架构 GPU 在 vllm下的模型推理优化
阅读排行:
· 面试官:DNS解析都整不明白,敢说你懂网络?我:嘤嘤嘤!
· 2000 Star,是时候为我的开源项目更新下功能了
· [WPF UI] 为 AvalonDock 制作一套 Fluent UI 主题
· 不错的AI项目集合
· 基于.NET WinForm开发的一款硬件及协议通讯工具

导航

< 2010年11月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4
5 6 7 8 9 10 11
点击右上角即可分享
微信分享提示