ホームページ >バックエンド開発 >C++ >C# | [async | async | async] による非同期プログラミング待ってください |タスク]

C# | [async | async | async] による非同期プログラミング待ってください |タスク]

WBOY
WBOYオリジナル
2024-07-23 21:49:44915ブラウズ

C# | Asynchronous programming with [async | await | Task]

Note
You can check other posts on my personal website: https://hbolajraf.net

C での await タスクと async タスクの使用

C# では、メインスレッドをブロックせずにタスクを同時に実行できるようにすることで、アプリケーションの応答性を向上させるために非同期プログラミングが使用されます。 await キーワードと async キーワードは、これを達成する上で重要な役割を果たします。このガイドでは、await タスクと async タスクを効果的に使用する方法を説明します。

導入

C# での非同期プログラミングは、I/O バウンドの操作やネットワーク リクエストなど、かなりの時間がかかる可能性のあるタスクに不可欠です。 await と async を使用すると、これらのタスクが完了するまでアプリケーションの応答性を維持できます。

非同期タスクの使用

  1. 非同期メソッドを定義する: await を使用するには、クラス内に非同期メソッドを定義します。通常は Task または Task を返します。
   public async Task MyAsyncMethod()
   {
       // Asynchronous code here
   }
  1. 非同期メソッドを呼び出す: 別のメソッドでは、await キーワードを使用して非同期メソッドを呼び出すことができます。
   await MyAsyncMethod();

await キーワード

await キーワードは、待機中のタスクが完了するまで実行を一時停止するために、非同期メソッド内で使用されます。これにより、呼び出し元のスレッドがブロックせずに他の作業を続行できるようになります。

async Task MyAsyncMethod()
{
    var result = await SomeAsyncTask();
    // Code after the await will execute when SomeAsyncTask is completed.
}

例外処理

非同期メソッドで例外を処理するには、標準の try-catch ブロックを使用できます。例外が非同期メソッドでスローされると、その例外はタスクの一部としてキャプチャされて伝播されます。

try
{
    await SomeAsyncMethod();
}
catch (Exception ex)
{
    // Handle the exception
}

キャンセルトークン

非同期操作をキャンセルするには、CancelToken を使用できます。 CancelToken を非同期メソッドに渡し、メソッド内でキャンセルを確認します。

async Task MyAsyncMethod(CancellationToken cancellationToken)
{
    // Check for cancellation
    cancellationToken.ThrowIfCancellationRequested();

    // Continue with the operation
}

現実世界の例

これは、一般的な現実のシナリオの例です。HTTP リクエストを非同期で作成します。

public async Task<string> FetchDataAsync(string url)
{
    using (var httpClient = new HttpClient())
    {
        var response = await httpClient.GetAsync(url);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

次は何?

C# で await タスクと async Task を使用すると、特に I/O バウンドまたは長時間実行されるタスクを扱う場合に、応答性の高い効率的なアプリケーションを作成できます。メインスレッドをブロックせずに複数のタスクを同時に実行できるようにすることで、アプリケーションの応答性を維持し、全体的なユーザー エクスペリエンスを向上させることができます。

以上がC# | [async | async | async] による非同期プログラミング待ってください |タスク]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。