APIs assíncronas da AWS para .NET - AWS SDK for .NET

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

APIs assíncronas da AWS para .NET

O AWS SDK for .NET usa o Padrão Assíncrono Baseado em Tarefas (TAP) para sua implementação assíncrona. Para saber mais sobre o TAP, consulte Padrão assíncrono baseado em tarefas (TAP) em docs.microsoft.com.

Este tópico fornece uma visão geral de como usar o TAP em suas chamadas para clientes do serviços da AWS.

Os métodos assíncronos na API do AWS SDK for .NET são operações baseadas na classe Task ou na classe Task<TResult>. Consulte docs.microsoft.com para obter informações sobre essas classes: classe Task, classe Task<TResult>.

Quando esses métodos de API são chamados em seu código, eles devem ser chamados em uma função declarada com a palavra-chave async, conforme mostrado no exemplo a seguir.

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; }

Conforme mostrado no trecho de código anterior, o escopo preferencial para a declaração async é a função Main. Definir esse escopo async garante que todas as chamadas para clientes de serviço da AWS sejam obrigatoriamente assíncronas. Se não puder declarar que Main seja assíncrono por algum motivo, você poderá usar a palavra-chave async em outras funções de Main e, em seguida, chamar os métodos da API a partir daí, conforme mostrado no exemplo a seguir.

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; }

Observe a sintaxe especial Task<> que é necessária em Main quando você usa esse padrão. Além disso, você deve usar omembro Result da resposta para obter os dados.

Você pode ver exemplos completos de chamadas assíncronas para clientes AWS de serviço na seção Faça um tour rápido (Aplicativo simples para várias plataformaseAplicativo simples baseado no Windows) e em Exemplos de código com orientação.