APM之 .net中异步编程模型比较3

.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

原文地址:https://www.cnblogs.com/2018/p/2040335.html