首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#转换异步模式

并非 .NET Framework 的所有类都引入了新的异步方法。在使用框架中的不同类时会发现,还有许多类只提供了 BeginXXX 方法和 EndXXX 方法的异步模式,没有提供基于任务的异步模式。但是,可以把异步模式转换为基于任务的异步模式。

这个示例使用 HttpWebRequest 类和 BeginGetResponse 方法将该方法转换为基于任务的异步模式。Task.Factory.FromAsync 是一个泛型方法,它提供了一些重载版本,将异步模式转换为基于任务的异步模式。对于示例应用程序,当调用 HttpWebRequest 的 BeginGetResponse 方法时,将发出异步网络请求。这个方法返回一个 IAsyncResult,它是 FromAsync 方法的第一个参数。第二个参数是对 EndGetResponse 方法的引用,它需要一个带有 IAsyncResult 参数(即 End GetResponse 方法)的委托。第二个参数还需要返回 WebResponse,由 FromAsync 方法的泛型参数决定。当 IAsyncResult 信号完成时,任务助手功能会调用 EndGetResponse 方法:

警告

在旧应用程序中,通常在使用异步模式时使用委托的 BeginInvoke() 方法。在 .NET Core 应用程序中使用此方法时,编译器不会报错。但是,在运行时,将抛出一个平台不支持的异常。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220303A01B2I00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券