Cha*_*Shi 8 c# asynchronous model
我正在学习使用C#的异步编程,我经常使用BeginInvoke,但我不太确定创建异步应用程序的其他方法.
我已经就此问了一个问题,请参阅以下链接了解更多详情:
在上面的链接中,Gravell说有四种异步开发模型
至少有4个,然后 - 常规回调(非APM,非EAP)也不常见
但溢流说有三个:
.NET中有3种异步开发模型
APM - (BeginXXX/ EndXXX)您在此处使用,当长时间运行的任务完成时,它会在EndXXX方法中回调您的代码
EAP - 基于事件.在此模型中,当长时间运行的任务完成时,将引发一个事件以通知您的代码.
TPL - .NET 4中的新功能,这是基于任务的版本.它看起来最像是使用流畅的界面对客户端代码进行同步编程.它使用回调你的代码ContinueWith.
有人可以帮我吗?
我搜索过很多google.com,但实际上他们使用的BeginInvoke最多.谢谢你的帮助.
Thread.Start- 残酷
delegate.BeginInvoke/EndInvoke- “旧”标准
ThreadPool.QueueUserWorkItem- 聪明的
TaskFactory.StartNew- 正确执行此操作的唯一方法(根据Patterns of parallel programming书|我建议您先阅读它以消除歧义)