本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 .NET 的 Amazon 异步 API
这些区域有:Amazon SDK for .NET使用基于任务的异步模式 (TAP)因为它的异步实现。要了解有关 TAP 的更多信息,请参阅基于任务的异步模式 (TAP)
此主题概述如何在呼叫中使用 TAPAmazon服务客户端。
中的异步方法Amazon SDK for .NETAPI 是基于Task
类或Task<TResult>
类。有关这些课程的信息,请参阅 docs.microsoft.com:任务类
当你的代码中调用这些 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
function. 设置此async
范围可确保所有调用Amazon服务客户端必须是异步的。如果你不能声明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
获取数据的响应成员。
你可以看到异步调用的完整示例Amazon中的服务客户端快速导览部分 (简单跨平台应用程序和基于 Windows 的简单应用程序) 然后带有指导的代码示例.