AWS .NET の非同期 APIs - AWS SDK for .NET (V3)

のバージョン 4 (V4) AWS SDK for .NET がリリースされました。

SDK の新しいバージョンの使用を開始するには、 AWS SDK for .NET (V4) デベロッパーガイド、特にバージョン 4 への移行に関するトピックを参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS .NET の非同期 APIs

は、非同期実装にタスクベースの非同期パターン (TAP) AWS SDK for .NET を使用します。TAP の詳細については、docs.microsoft.com の「タスクベースの非同期パターン (TAP)」を参照してください。

このトピックでは、 AWS サービスクライアントへの呼び出しで TAP を使用する方法の概要を説明します。

AWS SDK for .NET API の非同期メソッドは、 Task クラスまたは Task<TResult> クラスに基づくオペレーションです。Task class クラスおよび Task<TResult> class クラスの詳細については、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 関数です。この async スコープを設定する場合、 AWS サービスクライアントに対するすべての呼び出しが非同期である必要があります。何らかの理由で Main を非同期として宣言できない場合は、次の例に示すように、Main 以外の関数で async キーワードを使用して、そこから 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; }

このパターンを使用する場合、Main で必要とされる特殊な Task<> 構文に注意してください。また、レスポンスの Result メンバーを使用してデータを取得する必要があります。

AWS サービスクライアントへの非同期呼び出しの完全な例は、 クイックツアーに参加するセクション (シンプルなクロスプラットフォームアプリ および シンプルな Windows ベースのアプリ) および で確認できますガイダンス付きのコード例