文档详情

使用 Async 和 Await 的异步编程(C# 和 Visual Basic).doc

发布:2017-04-18约7.27千字共5页下载文档
文本预览下载声明
为什么使用Asynchrony? 使用异步编程时,可以在可能需要长时间运行的代码指定点处理挂起,当程序的其他部分无法继续时。 此技术来避免可能的性能瓶颈并增强应用程序的总体响应能力。 Asynchrony到可能会阻塞事件很重要,例如,当程序访问该web。 如果该事件在块同步过程,整个程序块。 在异步,则当阻塞任务完成其工作时,进程,程序可以取得进展在其他方面。 因为所有与用户界面相关的事件通常共享一个线程,Asynchrony尤其重要的进程访问UI线程。 如果任何处理块,所有块。 对于块的示例中通过“测试同步解决方案”节处理,按照 HYPERLINK /zh-CN/library/Vstudio/hh300224演练:使用 Async 和 Await 访问 Web(C# 和 Visual Basic) 的步骤。 或者,您可以下载演练中的代码从 HYPERLINK /fwlink/?LinkId=255191Async示例:访问Web演练 并运行名为SyncWalkthrough的项目。 当用户界面线程同步下载从web中的内容,无法移动控件或调整窗口的大小。 如果您不希望等待,不能即使关闭它关闭程序。 使用异步和请等待创建异步解决方案 HYPERLINK /zh-CN/library/Vstudio/hh191564Async (Visual Basic)或 HYPERLINK /zh-CN/library/Vstudio/hh156513async (C#)修饰符和 HYPERLINK /zh-CN/library/Vstudio/hh191564等待 (Visual Basic)或 HYPERLINK /zh-CN/library/Vstudio/hh156528等待 (C#)运算符对异步编程是基本的。 async修饰符指示编译器方法或lambda表达式是异步的,并且可以使用请等待运算符指定在方法中悬挂点。 这种方法引用异步方法。 在异步方法中,您可以等待运算符应用于特定任务挂起异步方法的执行,直到等待的任务完成。 同时,控件返回到异步方法的调用方。 保存并不构成从异步方法的退出,并且,finally 块不会运行。 编译器实现用于开发人员执行,包括注册挂起的方法中完成的延续的困难工作。 因此,异步代码容易编写,并且,如果您的程序保留类似于同步代码的逻辑结构。 例如,某些实例处理,例如循环,而异常处理,可能很难进行在传统异步代码编写。 在异步??法,解决您编写这些元素,因为在一个同步解决方案会并将问题。 有关asynchrony以前的方法的更多信息在.NET Framework,请参见 HYPERLINK /zh-CN/library/Vstudio/dd997423TPL 和传统 .NET 异步编程。 .NET Framework 4.5 包含与异步以及等待的许多成员。 您可以通过附加到成员名称和 HYPERLINK /zh-CN/library/Vstudio/system.threading.tasks.taskTask 或 HYPERLINK /zh-CN/library/Vstudio/dd321424TaskTResult的返回类型“Async”后缀识别这些成员。 例如,System.IO.Stream选件类包含方法例如 HYPERLINK /zh-CN/library/Vstudio/system.io.stream.copytoasyncCopyToAsync、HYPERLINK /zh-CN/library/Vstudio/system.io.stream.readasyncReadAsync和 HYPERLINK /zh-CN/library/Vstudio/system.io.stream.writeasyncWriteAsync 在同步方法 HYPERLINK /zh-CN/library/Vstudio/system.io.stream.copytoCopyTo、HYPERLINK /zh-CN/library/Vstudio/system.io.stream.readRead和 HYPERLINK /zh-CN/library/Vstudio/system.io.stream.writeWrite。 示例 下面的示例通过比较同步编写与方法相同的方法声明此方法很简单,如果已编写以异步方式。 有关完整的示例,请参见HYPERLINK /zh-CN/library/Vstudio/hh300224演练:使用 Async 和 Await 访问 Web(C# 和 Visual Basic)。 下面的更改将同步方法(
显示全部
相似文档