Parallel patterns in C#
写在前面
与C/C++所使用的,传统的基于线程的并行模式不同,C#实现了丰富的并发编程模型,其中以异步模型最为流行。
本文中我们重点讨论C#在发展过程中出现的几种异步编程模型:
- Async Programming Model(APM)
- Event-based Async Pattern (EAP)
- Task-based Async Pattern(TAP)
- async/await语法糖
异步编程入门
同步模式是最常见,也是最被人熟知的编程模型,每一个任务按顺序执行,前一个任务执行完之后才会执行下一个任务。
异步编程和同步编程不同,程序的执行流程是由“事件”所驱动的。异步编程有两种实现方式,回调与future模式。
回调函数在Javascript中被大量使用,相信大家也都不会陌生。但是大量的回调函数会让代码失去可读性,陷入“Callback hell”。
Promise模式是回调函数的一种“包装”。我们使用一个占位符来表示“未来”将会产生的一个异步处理结果。
这个占位符在不同的语言/框架里面有不同的名字,其定义也不尽相同:
- Task …