适用于 .NET 的 AWS 异步 API - 适用于 .NET 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 .NET 的 AWS 异步 API

的 适用于 .NET 的 AWS 开发工具包 使用 基于任务的异步模式(TAP) 异步实施。要了解有关TAP的更多信息,请参阅 基于任务的异步模式(TAP) 在docs.microsoft.com上。

本主题概述了如何在呼叫中使用TAP AWS 服务客户。

注意

此主题中的信息以.NETCore和ASP.NETCore为中心。如果您正在维护.NETFramework4.5代码,则本主题中的信息也适用于.NETFramework4.5的SDK实施,该软件也使用TAP。

如果您正在寻找关于 适用于 .NET 的 AWS 开发工具包 实施.NETFramework3.5的异步操作,请参阅 版本3 而是。

中的异步方法 适用于 .NET 的 AWS 开发工具包 API是基于 Task 类或 Task<TResult> 类。有关这些类的信息,请参阅docs.microsoft.com: 任务类, 任务<TResult>类.

当您的代码中调用这些API方法时,它们必须在与 async 关键字,如以下示例所示。

static async Task Main(string[] args) { ... // Call the function that contains the asynchronous API method. // Could also call the asynchronous API method directly from Main // because Main is declared async var response = await ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); ... } // Async method to get a list of Amazon S3 buckets. private static async Task<ListBucketsResponse> ListBucketsAsync() { ... var response = await s3Client.ListBucketsAsync(); return response; }

如前面的代码片段所示, async 申报是 Main 功能。设置此 async 范围可确保所有呼叫 AWS 服务客户端必须为异步。如果您无法申报 Main 出于某种原因异步,您可以使用 async 函数上的关键字,而不是 Main 然后从那里调用API方法,如以下示例所示。

static void Main(string[] args) { ... Task<ListBucketsResponse> response = ListBucketsAsync(); Console.WriteLine($"Number of buckets: {response.Result.Buckets.Count}"); ... } // Async method to get a list of Amazon S3 buckets. private static async Task<ListBucketsResponse> ListBucketsAsync() { ... var response = await s3Client.ListBucketsAsync(); return response; }

请注意 Task<> 所需的语法 Main 当您使用此模式时。此外,您必须使用 Result 获得数据。

您可以看到以下异步呼叫的完整示例: AWS 服务客户 快速启动 章节(简单跨平台应用程序基于 Windows 的简单应用程序)和in 使用AWS服务.