c# - 在 .NET 4.0 中创建可与 .NET 4.5 中的 "await"一起使用的异步方法

标签 c# .net async-await .net-4.5

我有一个在 .NET 4.0 和 VS2010 中使用 C# 的 .NET 项目。

我想做的是向我的库中添加一些异步重载,以便使用 await 关键字使 .NET 4.5 中的用户更容易进行异步编程。现在被重载的方法是非异步的。此外,我不想自己使用任何异步方法,只需创建新方法并使它们可用。

是否可以在 .NET 4.0 和 VS2010 中创建异步方法?如果可以,.NET 4.0 异步方法应该是什么样子?

因为我使用的是 VS2010,所以我无权访问“async”关键字,那么在 .NET 4.0 中需要做什么来模拟该行为?例如,它是否需要返回任何特定类型,是否需要在方法内部发生任何代码以使其调用的当前非异步代码异步发生?

最佳答案

正如其他人所说,您首先要让方法返回 TaskTask<TResult> .这足以await它在 .NET 4.5 中的结果。

为了使您的方法尽可能适合 future 的异步代码,请遵循 Task-based Asynchronous Pattern document 中的指南。 (也可用 on MSDN )。它提供命名约定和参数建议,例如,支持取消。

对于您的方法的实现,您有几个选择:

关于c# - 在 .NET 4.0 中创建可与 .NET 4.5 中的 "await"一起使用的异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574790/

相关文章:

c# - 将 JSON 值写入 SQL 数据库

c# - ToListAsync() in a DbContext using statement : "The ObjectContext disposed", 如何处理?

rust - 在 tokio::time::timeout 之后再次等待 future

C# timer - 得到 'Method name expected' 错误

c# - XSP 可以运行 ASP.NET 4.5 吗?

.net - 监视 IIS 站点重新编译 .NET 3.5

c# - 如何彻底解决IoC循环引用?

c# - 将异步方法传递给 Parallel.ForEach

c# - 如何按位置获取瓷砖游戏对象?

c# - 使用 JSON 时 NServiceBus 处理程序出现空消息