序
经过一番努力,我写的异步编程系列也算有头有尾,当然不是说这个系列已经更新完毕,这个头尾只是表示新旧知识点都有简单涉及到,接下去我还会丰富这一系列并且有机会整个小应用(愿景是弄一个开源组件吧,结合socket)。
术语:
APM 异步编程模型,Asynchronous Programming Model
EAP 基于事件的异步编程模式,Event-based Asynchronous Pattern
TAP 基于任务的异步编程模式,Task-based Asynchronous Pattern
TPL 任务并行库,Task Parallel Library
现在我给这个系列整个目录和做个简单介绍。
“概要 + 目录”整理
C#语言是微软于2000年发布,基于.NET Framewrok框架的、面向对象的高级语言。经过近十三年的发展,经历了5次大的升级,目前最新版本为C#5.0(对应于.NET Framework 4.5)。其中每个版本发布都是有一个“主题”。即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程。这系列既是针对“异步编程”所写。
C#版本 | .NET 版本 | Visual Studio 版本 | 特性描述 |
C# 1.0 | .NET 1.0/1.1 | VS 2002/2003 | C#的第一个正式发行版本。微软的团队从无到有创造了一种语言,专门为.NET编程提供支持 |
C# 2.0 | .NET 2.0 |
VS 2005 | C#语言开始支持泛型,.NET Framework 2.0新增了支持泛型的库 |
.NET 3.0 | 新增了一套API来支持分布式通信(Windows Communication Foundation— WCF)、富客户端表示(Windows Presentation Foundation)、工作流(Windows Workflow—WF)以及Web身份验证(Cardspaces) | ||
C# 3.0 | .NET 3.5 | VS 2008 | 添加了对LINQ的支持,对用于集合编程的API进行了大幅改进。.NET Framework 3.5对原有的API进行了扩展,从而支持了LINQ |
C# 4.0 | .NET 4.0 | VS 2010 | 添加了动态类型(dynamic)的支持,引入了新的轻量级线程同步基元及新的异步编程类库TPL |
C# 5.0 | .NET 4.5 | VS 2012 | 改进并扩展了.NET4.0中引入的TPL类库,并引入async和await关键字轻松构建异步方法。 |
1. 异步编程基础
资料整理路线:线程----线程池----线程同步----并行任务----三种异步编程模型。首先了解最基础的线程(Thread类),再进一步明白线程管理器(ThreadPool类)。因为多个工作项之间可能出现并行运行,会造成对共享资源的访问问题,所以引入线程同步基元来让共享资源得到合理使用。最后介绍.NET4.0新引入并在.NET4.5中得到优化和扩展的TPL(任务并行库),并结合C# 5.0中新引入的async和await关键字轻松构建异步方法。详细如下:
异步编程:.NET 4.5 基于任务的异步编程模型(TAP)
多线程之取消令牌(CancellationToken)- (@Ron.Liang)
(译).NET4.X 并行任务中Task.Start()的FAQ
Thread、ThreadPool、Task、Parallel、Async和Await基本用法、区别以及弊端
2. async\await 使用注意事项
此文因在async返回void,在基于任务的异步模式(TAP)并不知道异步任务的状态,当 this.context.Update 执行完成后,发现挂载在内存中的连接已经没有使用,就执行了回收;实际上,此时程序还没有执行完成,但是 TAP 并不知道,所以它不会去阻止这个回收的过程(使用标记),释放 DbContext 后抛出异常
3. 示例:构建Async同步基元
为TPL提供同步基元,但这只是提供TPL的应用思路,不推荐将这些同步基元应用于项目中。
(译)构建Async同步基元,Part 1 AsyncManualResetEvent
(译)构建Async同步基元,Part 2 AsyncAutoResetEvent
(译)构建Async同步基元,Part 3 AsyncCountdownEvent
(译)构建Async同步基元,Part 4 AsyncBarrier
(译)构建Async同步基元,Part 5 AsyncSemaphore
(译)构建Async同步基元,Part 6 AsyncLock
(译)构建Async同步基元,Part 7 AsyncReaderWriterLock
4. 前端中的异步
5. 持续更新……
“加关注”更快获得持续更新。
喜欢本系列博文的园友还请多多推荐(*^_^*)……感谢大家支持!
推荐阅读: