

Versi 4 (V4) dari AWS SDK untuk .NET telah dirilis\!

Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat [topik migrasi](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)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pemrograman secara asinkron menggunakan AWS SDK untuk .NET
<a name="sdk-net-async-api"></a>

 AWS SDK untuk .NET Menggunakan *Task-based Asynchronous Pattern (TAP) untuk implementasi asinkron*. Untuk mempelajari TAP selengkapnya, lihat [Pola Asinkron Berbasis Tugas (TAP](https://learn.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap)) di docs.microsoft.com.

Topik ini memberi Anda gambaran umum tentang cara menggunakan TAP dalam panggilan Anda ke klien AWS layanan.

Metode asinkron dalam AWS SDK untuk .NET API adalah operasi berdasarkan `Task` kelas atau kelas. `Task<TResult>` [Lihat docs.microsoft.com untuk informasi tentang kelas-kelas ini: Kelas tugas, [Tugas < > kelas](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)

Ketika metode API ini dipanggil dalam kode Anda, mereka harus dipanggil dalam fungsi yang dideklarasikan dengan `async` kata kunci, seperti yang ditunjukkan pada contoh berikut.

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

Seperti yang ditunjukkan pada cuplikan kode sebelumnya, ruang lingkup yang lebih disukai untuk `async` deklarasi adalah fungsinya. `Main` Menyetel `async` cakupan ini memastikan bahwa semua panggilan ke klien AWS layanan harus asinkron. Jika Anda tidak dapat mendeklarasikan `Main` asinkron karena alasan tertentu, Anda dapat menggunakan `async` kata kunci pada fungsi selain `Main` dan kemudian memanggil metode API dari sana, seperti yang ditunjukkan pada contoh berikut. 

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

Perhatikan `Task<>` sintaks khusus yang diperlukan `Main` saat Anda menggunakan pola ini. Selain itu, Anda harus menggunakan **`Result`**anggota respons untuk mendapatkan data.

Anda dapat melihat contoh lengkap panggilan asinkron ke klien AWS layanan di [Membuat aplikasi sederhana](quick-start.md) bagian ([Aplikasi lintas platform sederhana](quick-start-s3-1-cross.md)dan[Aplikasi berbasis Windows sederhana](quick-start-s3-1-winvs.md)) dan di. [Contoh kode terpanduPustaka dan kerangka kerja tingkat tinggi](tutorials-examples.md)