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

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

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Async和Await的异步编程(C#和VisualBasic)使用Async和Await的异步编程(C#和VisualBasic).doc

为什么使用Asynchrony? 使用异步编程时,可以在可能需要长时间运行的代码指定点处理挂起,当程序的其他部分无法继续时。 此技术来避免可能的性能瓶颈并增强应用程序的总体响应能力。 Asynchrony到可能会阻塞事件很重要,例如,当程序访问该web。 如果该事件在块同步过程,整个程序块。 在异步,则当阻塞任务完成其工作时,进程,程序可以取得进展在其他方面。 因为所有与用户界面相关的事件通常共享一个线程,Asynchrony尤其重要的进程访问UI线程。 如果任何处理块,所有块。 对于块的示例中通过“测试同步解决方案”节处理,按照 HYPERLINK "/zh-CN/library/Vstudio/hh300224"演练:使用 Async 和 Await 访问 Web(C# 和 Visual Basic) 的步骤。 或者,您可以下载演练中的代码从 HYPERLINK "/fwlink/?LinkId=255191"Async示例:访问Web演练 并运行名为SyncWalkthrough的项目。 当用户界面线程同步下载从web中的内容,无法移动控件或调整窗口的大小。 如果您不希望等待,不能即使关闭它关闭程序。 使用异步和请等待创建异步解决方案 HYPERLINK "/zh-CN/library/Vstudio/hh191564"Async (Visual Basic)或 HYPERLINK "/zh-CN/library/Vstudio/hh156513"async (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/dd997423"TPL 和传统 .NET 异步编程。 .NET Framework 4.5 包含与异步以及等待的许多成员。 您可以通过附加到成员名称和 HYPERLINK "/zh-CN/library/Vstudio/system.threading.tasks.task"Task 或 HYPERLINK "/zh-CN/library/Vstudio/dd321424"Task<TResult>的返回类型“Async”后缀识别这些成员。 例如,System.IO.Stream选件类包含方法例如 HYPERLINK "/zh-CN/library/Vstudio/system.io.stream.copytoasync"CopyToAsync、HYPERLINK "/zh-CN/library/Vstudio/system.io.stream.readasync"ReadAsync和 HYPERLINK "/zh-CN/library/Vstudio/system.io.stream.writeasync"WriteAsync 在同步方法 HYPERLINK "/zh-CN/library/Vstudio/system.io.stream.copyto"CopyTo、HYPERLINK "/zh-CN/library/Vstudio/system.io.stream.read"Read和 HYPERLINK "/zh-CN/library/Vstudio/system.io.stream.write"Write。 示例 下面的示例通过比较同步编写与方法相同的方法声明此方法很简单,如果已编写以异步方式。 有关完整的示例,请参见HYPERLINK "/zh-CN/library/Vstudio/hh300224"演练:使用 Async 和 Await 访问 We

您可能关注的文档

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档