ホームページ > バックエンド開発 > C++ > async/awaint in c#:いつタスクvs. voidを返すか?

async/awaint in c#:いつタスクvs. voidを返すか?

Barbara Streisand
リリース: 2025-02-01 14:11:08
オリジナル
617 人が閲覧しました

Async/Await in C#: When to Return Task vs. Void?

c#非同期プログラミング

メソッドの返品値:asyncまたはTaskvoid

非同期プログラミングにC#を使用する場合、

メソッドはasyncまたはTaskを返すことができます。この選択は、メソッドの動作とコールコードとの対話方法を決定するため、不可欠です。 void

いつ戻るか

Task

通常、コールパーティへの非同期操作の進捗状況または結果を作成したい場合は、

を返す必要があります。これにより、発信者はタスクを待って、完了後も実行し続けることができます。 Taskに戻ると、複数のタスクの進行を監視できるTaskなどの異常処理や非同期モードを使用することもできます。 async-foreach

いつ戻るか

void

asyncからvoidを返すのに適した唯一の状況は、たとえば、イベント処理プログラムまたはUIコールバックなど、明確にの型を必要とする場合です。これらの場合、発信者はこの方法を待つことができないはずであり、キーワードは必要ありません。 void asyncトップレベルを避けてくださいメソッドawait

の方法には特別なセマンティクスがあり、注意して使用する必要があります。それらは非同期操作を表しており、タスクを返す方法と比較して、異なる異常な治療規則を持っています。上部の方法の異常は、未処理の異常と見なされ、偶発的な行動につながる可能性があります。

たとえば、async void次のコードを検討してください

この場合、

async voidの使用は不要であり、問​​題がある可能性があります。 void

コールパーティーがこの方法を待ち、その進捗を監視することを防ぎます。

メソッドの異常は処理されず、異常な適用挙動を引き起こす可能性があります。

<code class="language-C#">public static async void AsyncMethod2(int num)
{
    await Task.Factory.StartNew(() => Thread.Sleep(num));
}</code>
ログイン後にコピー

メソッドとasync voidキーワードを使用して、正しい異常な治療を確保し、非同期操作を追跡および管理する能力を維持することをお勧めします。

以上がasync/awaint in c#:いつタスクvs. voidを返すか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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