Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
API asincrónicas de AWS para .NET
AWS SDK for .NET utiliza el patrón asincrónico basado en tareas (TAP) en su implementación asincrónica. Para obtener más información sobre el TAP, consulte Patrón asincrónico basado en tareas (TAP)
En este tema se ofrece información general sobre cómo utilizar el TAP en las llamadas a clientes de servicio de AWS.
Los métodos asincrónicos de la API de AWS SDK for .NET son operaciones basadas en las clases Task
o Task<TResult>
. Consulte docs.microsoft.com para obtener información sobre estas clases: Clase Task
Cuando estos métodos de API se invocan en el código, se deben llamar dentro de una función que esté declarada con la palabra clave async
, como se muestra en el siguiente ejemplo.
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; }
Como se muestra en el fragmento de código anterior, el ámbito preferido de la declaración de async
es la función Main
. Establecer este ámbito async
garantiza que todas las llamadas a clientes de servicio de AWS van a ser asincrónicas obligatoriamente. Si Main
no se puede declarar como asincrónico por algún motivo, se puede usar la palabra clave async
en otras funciones distintas de Main
y, a continuación, llamar a los métodos de la API desde esas funciones, como se muestra en el siguiente ejemplo.
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; }
Fíjese en la sintaxis de Task<>
especial que se necesita en Main
al usar este patrón. Además, para obtener los datos, debe usar el miembro Result
de la respuesta.
Encontrará ejemplos completos de llamadas asincrónicas a clientes de servicio de AWS en la sección Recorrido rápido (Aplicación multiplataforma sencilla y Aplicación sencilla basada en Windows) y en Ejemplos de código con orientaciones.