ホームページ > テクノロジー周辺機器 > IT業界 > async/async/await in c#を使用した非同期プログラミング

async/async/await in c#を使用した非同期プログラミング

Joseph Gordon-Levitt
リリース: 2025-02-10 09:32:12
オリジナル
692 人が閲覧しました

この記事では、C#での非同期プログラミングを調査し、

およびasyncキーワードに焦点を当てています。 これらのキーワードは、非同期コードを大幅に簡素化し、読みやすく保守可能にします。 この記事は、同期、同時、並列、および非同期の実行を対照的で、区別を明確にします。 await

Asynchronous Programming Using Async/Await in C#

重要な概念:

    async/async/await simplification:
  • andは、C#で非同期プログラミングを合理化し、従来の方法よりもクリーンなアプローチを提供します。 asyncawaitタスクベースの非同期パターン(TAP):
  • タップ、
  • およびを使用して、.NETで非同期操作に推奨されるパターンであり、および。Task Task<t></t>asyncパフォーマンスと応答性:非同期操作はUIの応答性を高め、スレッドプールを効率的に利用し、I/O操作中にスレッドブロッキングを防ぐことでパフォーマンスを高めることができます。 await
  • デッドロックの回避:
  • 同期コードと非同期コードの混合など、およびの不適切な使用は、デッドロックにつながる可能性があります。 これらの問題を防ぐためには、
  • のようなテクニックが重要です。 async例外処理:awaitConfigureAwait(false)は、.Result.Wait()
  • レガシーコードのリファクタリング:
  • 同期コードから非同期コードへの移行には、メソッドシグネチャを変更してまたはを返すこと、ブロックコールをawaitに置き換え、適切な例外処理を実装します。 .Result .Wait()AggregateException同時対並列対非同期:
  • この記事は、これら3つの概念を区別します。これは、しばしば同じ意味で使用されますが、明確な意味を持っています。 TaskTask<t></t>同期:await操作は順次実行し、完了するまでプログラムをブロックします
同時:

複数のタスクが同時に一見実行され、多くの場合、個別のスレッドを使用しますが、必ずしも同時にそうではありません。 並列:

同じタスクの複数のコピーが同時に実行され、複数のコアを活用します。

非同期:
    タスクは、完了を待っている間に実行スレッドをブロックしません。スレッドはスレッドプールにリリースされます
  • 非同期プログラミングパターン:
  • 記事では、.NET:の3つの非同期プログラミングパターンを詳しく説明しています
    1. 非同期プログラミングモデル(APM):メソッドを使用したレガシーパターン。 BeginOperationNameEndOperationNameイベントベースの非同期パターン(EAP):
    2. メソッドを使用したレガシーパターン。
    3. タスクベースの非同期パターン(TAP):推奨パターン。 OperationNameAsync OperationNameCompleted
    4. およびOperationNameAsync TaskTask<t></t>および
    5. はタップの基本であり、非同期操作を表し、継続を管理し、完了を待つ、キャンセルを処理する方法を提供します。

    およびTaskTask<t></t>

    この記事では、

    TaskTask<t></t>の役割について説明しています

    asyncawaitは、メソッドを非同期としてマークし、

    の使用を可能にします

    asyncawait

      または
    • またはがスレッドをブロックせずに完了するのを非同期的に待っています。 async await既存のコードの更新:
    • この記事では、リファクタリングの同期コードを非同期コードにawaitおよびを使用して示しており、メソッドシグネチャを更新し、ブロッキングコールをTaskTask<t></t>
    • デッドロックと

    この記事では、

    および

    を使用した場合の潜在的なデッドロックについて説明し、特定のコンテキストなしで連続化を実行できるようにすることで、デッドロックを防ぐためのソリューションとしてasyncを紹介します。 awaitawait非同期コードでの例外処理:

    この記事では、待機をブロックすることでスローされたConfigureAwait(false)とは異なり、実際の例外を直接スローするを使用した改善された例外処理を強調しています。

    さらなる読み取り:asyncawait ConfigureAwait(false)この記事は、C#。

    async/await faq:

    await AggregateException簡潔なFAQセクションでは、

    および

    に関する一般的な質問、その目的、同期プログラミングとの違い、使用、パフォーマンスへの影響、および潜在的な落とし穴をカバーしています。

以上がasync/async/await in c#を使用した非同期プログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート