编辑寄语

考虑异步方法的背景

迈克尔 • Desmond

 

Michael Desmond
这个月 MSDN 杂志探讨了强大的新异步编程功能进入 C#、 Visual Basic 和 Microsoft 的下一个版本。NET 框架。目前通过 Visual Studio 的异步 CTP,新的功能有助于解决最新兴令人头痛之一中的多核系统年龄和云计算: 免时线程被阻塞等待事情处罚喜欢从远程服务器或计算返回完成的另一个线程上的数据。

我说与 Mads Torgersen,一种异步编程的本月的特性和 C# 和 Visual Basic 语言团队在 Microsoft 的主体项目经理的作者。他备注几乎每个应用程序成为连接并且该延迟逐渐成为"中央问题到周围的代码。为什么没有我们看到异步支持中。NET Framework 4?

"在其中的功能集已锁定的发行版中,我们没有这样一种语言功能应该看起来像,严重体会点"说 Torgersen。"但是,F# 附带在同一时间使用了很多人心我们的最终目的异步语言功能。我们发货 4 C# 和 Visual Basic 10 时,我们看到该 asynchrony 应为下的一步在行中,并且它是真正需要的语言级别解决问题的装载证据。"

Torgersen 描述为非常简单的核心实施方法。"暂停和继续"的解决方案是在飞行中的代码的执行。而不是截向上生成代码复制到单独的位,团队将用于对到与用户的代码中的适当位置的"parachute 中"一种技术。方法提供了保留原始源代码的结构的好处--结果是硬争辩。

"我们已经遇到出奇小 bug 尾巴的不一致,"Torgersen 说。

异步演变

对于 Microsoft 的旗舰产品托管编程语言,异步编程中的新功能 C# 和 Visual Basic 标记最新的一系列重要的发展步骤。过去几年中,这些语言已经功能和动态编程和最近异步编程的各个方面。郭 Feigenbaum,在 Microsoft,Visual Studio 组中的项目群经理解释,如工作都是为了将这些功能在"最适合每种语言的样式。"方面纳入

"例如,动态语言互操作添加到 Visual Basic 中的利用先前已经语言的一部分的后期绑定结构。此外,在 C# 中我们添加了一个静态类型,称为动态的"Feigenbaum 说。"说到函数编程将 lambda 添加到 Visual Basic 时,我们使用熟悉的关键字语法用子/End Sub 和函数/结束函数。但是,对于 C#,这是较为简洁,我们使用符号来设计语法与 ' = >'。这些设计有助于保留其原始字符和壮大保持开发人员熟悉每种语言。"

添加大量的新功能,以一种编程语言绝不是微不足道的小事。Feigenbaum 描述语言设计中的"非常保守进程",强调直到它们完全正确不会添加功能。在异步的情况下新功能内置在上一版本中引入的基础上。NET 框架。

"例如,Visual Studio vNext 异步设计已添加到该任务类型为基础而建立。NET 框架中。NET 4,"说 Feigenbaum。"使用该基础、 以及其他框架支持正在添加的下一个版本中,我们能够最终设计我们的 Visual Studio vNext 中的异步满意是很优雅的语言语法。"

如今,开发人员可以使用异步 CTP 熟悉来到 C# 和 Visual Basic 的新资源。同时,Torgersen 显示为开发人员可以做为异步的有效期限,最好准备的一件事: 成为基于任务的。

"即使 on。NET 4,则任务类型是多更好的货币异步活动比我们有的旧模式。您仍然需要基于回调的由于您未安装的语言支持,但在更正规的方式。和让您的所有签名,请按照新的基于任务的模式将您精心为日准备何时使用那些具有只是一个简单的等待表达式。