【问题标题】:How to make an asynchronous call on .NET Framework 4.0 without using Microsoft.Bcl.Async nuget package? [closed]如何在不使用 Microsoft.Bcl.Async nuget 包的情况下对 .NET Framework 4.0 进行异步调用? [关闭]
【发布时间】:2020-12-18 16:32:19
【问题描述】:

为了提供一些背景信息,我正在开发一个基于 .NET Framework 4.0 的 Winforms 应用程序。我需要异步调用内部服务,而无需更改 .NET Framework 版本或添加任何 Nuget 包。我熟悉使用 async/await,但我们目前的要求不允许 .NET 框架升级

【问题讨论】:

  • Microsoft.Bcl.Async 实际上是在 .NET 4.0 环境中使用 async 和 await 的方式。我很确定除了升级或使用那个 nuget 包之外别无他法。
  • 总之你没有。您升级到受支持的 .net 版本,让您的生活更轻松。虽然如果你真的在 .net 4 中需要这个,这取决于你在做什么,有可能的方法
  • Asynchronous programming patterns - 使用 APM 或 EAP 而不是 TAP。
  • .NET 4.0 几年前就停止了支持,所有 .NET 4.x 运行时都是二进制替换。安装较新的版本(例如通过 Windows 更新)替换旧版本。我非常怀疑any 客户端机器仍在运行.NET 4.0。除非您想针对同样不受支持的 Windows XP。
  • @Raffy 这不是真的 - .NET 4.0 应用程序可以轻松升级到 4.5。唯一真正的阻碍因素是 Windows XP。而 .NET 4.0 需要 NuGet。顺便说一句,如果您仍然使用 .NET 4.0,您将无法使用任何使用 HTTPS 的站点或服务 - 几乎每个人(当​​然是所有主要服务)都在 4 年前迁移到 TLS1.2。 .NET 4.0 不支持 TLS1.2

标签: c# .net winforms asynchronous async-await


【解决方案1】:

简而言之:没有它就行不通。

在这里回答:async/await keywords not available in .net 4.0

解决方法:How can I use the async keywords in a project targeting.net 4.0

【讨论】:

  • 好吧,如果没有包,.NET 4.0 就不可能使用特定的关键字 async/await。我并不是说不可能用任何其他包来归档类似的东西。但是,是的,我明白这一点,如果您收到以下信息,它就不太令人满意:它不可能作为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 2011-03-27
  • 2020-06-09
  • 2019-02-13
相关资源
最近更新 更多