.net中的异步编程模型比较

模型

主要用途

用什么模拟辅助用途

父子

进度报告

取消

等待

超时

返回结果/异常

QueueUserWorkItem

计算

同步I/O

No

No

No

No

No

No

Timer

计算

同步I/O

No

No

通过Dispose

No

Yes

No

RegisterWaitForSingleObject

计算

同步I/O

No

No

通过Unregister

No

Yes

Yes

Tasks

计算

同步I/O

TaskCompletionSource

TaskScheduler'sFromAsync

Yes

No

计算;

在Task开始前取消;

Task支持取消;

放弃结果

Yes

Yes

Yes

IAsyncResult APM

I/O

委托的BeginInvoke

No

No

No

Yes

No

Yes

Event-based APM (EAP)

I/O

BacgroundWorker

No

部分

部分类型放弃结果

No

No

Yes

AsyncEnumerator

http://www.cnblogs.com/2018/archive/2011/05/08/2040054.html

的Power Threading

I/O

委托的BeginInvoke

No

No

Yes

No

Yes

Yes

有了这个内容,我们在使用异步处理的时候,可以选择适合自己的框架和工具了 

详细参考:

Clr Via C#

http://transbot.blog.163.com

http://ys-f.ys168.com/?CLR_via_CSharp_3rd_Edition_Code_by_Jeffrey_Richter.zip_55bism1e0e7bkisjthit2bso0cm5bs4bs1b5bktnql0c0bu22f05f12z

相关文章:

  • 2022-02-12
  • 2022-12-23
  • 2022-01-09
  • 2021-07-12
  • 2021-08-11
  • 2021-12-31
  • 2022-12-23
  • 2021-09-18
猜你喜欢
  • 2022-12-23
  • 2021-11-21
  • 2021-10-20
  • 2021-06-26
  • 2021-05-19
相关资源
相似解决方案