

Version 4 (V4) von AWS SDK für .NET wurde veröffentlicht\$1

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im [Migrationsthema](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Asynchrone Programmierung mit dem AWS SDK für .NET
<a name="sdk-net-async-api"></a>

Das AWS SDK für .NET verwendet das *Task-Based Asynchronous Pattern (TAP)* für seine asynchrone Implementierung. Weitere Informationen zum TAP finden Sie unter [Task-based Asynchronous Pattern (](https://learn.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap)TAP) auf docs.microsoft.com.

Dieses Thema gibt Ihnen einen Überblick darüber, wie Sie TAP bei Ihren Anrufen an Serviceclients verwenden können. AWS 

Die asynchronen Methoden in der AWS SDK für .NET API sind Operationen, die auf der `Task` Klasse oder der `Task<TResult>` Klasse basieren. [Informationen zu diesen Klassen finden Sie auf docs.microsoft.com: [Taskclass, Task< > class](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task). TResult](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1)

Wenn diese API-Methoden in Ihrem Code aufgerufen werden, müssen sie innerhalb einer Funktion aufgerufen werden, die mit dem `async` Schlüsselwort deklariert ist, wie im folgenden Beispiel gezeigt.

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

Wie im vorherigen Codeausschnitt gezeigt, ist der bevorzugte Bereich für die `async` Deklaration die Funktion. `Main` Durch die Festlegung dieses `async` Bereichs wird sichergestellt, dass alle Aufrufe an AWS Service-Clients asynchron sein müssen. Wenn Sie aus irgendeinem Grund nicht als asynchron deklarieren `Main` können, können Sie das `async` Schlüsselwort für andere Funktionen als verwenden `Main` und dann die API-Methoden von dort aus aufrufen, wie im folgenden Beispiel gezeigt. 

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

Beachten Sie die spezielle `Task<>` Syntax, die erforderlich ist`Main`, wenn Sie dieses Muster verwenden. Außerdem müssen Sie das **`Result`**Mitglied der Antwort verwenden, um die Daten abzurufen.

Vollständige Beispiele für asynchrone Aufrufe von AWS Service-Clients finden Sie in den [Erstellen einer einfachen Anwendung](quick-start.md) Abschnitten ([Einfache plattformübergreifende App](quick-start-s3-1-cross.md)und[Einfache Windows-basierte App](quick-start-s3-1-winvs.md)) und in[Geführte CodebeispieleBibliotheken und Frameworks auf hohem Niveau](tutorials-examples.md).