在.NET中有多少个异步开发模型?

Cha*_*Shi 8 c# asynchronous model

我正在学习使用C#的异步编程,我经常使用BeginInvoke,但我不太确定创建异步应用程序的其他方法.

我已经就此问了一个问题,请参阅以下链接了解更多详情:

如何从BeginInvoke返回T值?

在上面的链接中,Gravell说有四种异步开发模型

至少有4个,然后 - 常规回调(非APM,非EAP)也不常见

但溢流说有三个:

.NET中有3种异步开发模型

  • APM - (BeginXXX/ EndXXX)您在此处使用,当长时间运行的任务完成时,它会在EndXXX方法中回调您的代码

  • EAP - 基于事件.在此模型中,当长时间运行的任务完成时,将引发一个事件以通知您的代码.

  • TPL - .NET 4中的新功能,这是基于任务的版本.它看起来最像是使用流畅的界面对客户端代码进行同步编程.它使用回调你的代码ContinueWith.

有人可以帮我吗?

我搜索过很多google.com,但实际上他们使用的BeginInvoke最多.谢谢你的帮助.

Mik*_*ant 4

Thread.Start- 残酷

delegate.BeginInvoke/EndInvoke- “旧”标准

ThreadPool.QueueUserWorkItem- 聪明的

TaskFactory.StartNew- 正确执行此操作的唯一方法(根据Patterns of parallel programming书|我建议您先阅读它以消除歧义)