ホームページ > バックエンド開発 > C++ > 多様な結果タイプを使用して複数の非同期タスクを効率的に待つにはどうすればよいですか?

多様な結果タイプを使用して複数の非同期タスクを効率的に待つにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-28 03:16:08
オリジナル
177 人が閲覧しました

さまざまな戻り値の型を持つ複数の非同期タスクを効率的に処理する

非同期プログラミングでは、同時に実行されている複数のタスクの結果が必要になることが多く、それぞれが異なるデータ型を返す可能性があります。 3 つのタスク例で説明してみましょう:

  • FeedCat(): Cat オブジェクトを返します。
  • SellHouse(): House オブジェクトを返します。
  • BuyCar(): Tesla オブジェクトを返します。

続行するにはすべての結果が必要です。順次実行も可能ですが、同時実行の方がはるかに効率的です。 課題は、多様な結果タイプを処理することにあります。

解決策: Task.WhenAll と個別の待機

を活用する

この解決策には、指定されたすべてのタスクが完了するのを待つ Task.WhenAll が含まれます。 完了後、await:

を使用して個々の結果を取得します。
<code class="language-csharp">var catTask = FeedCat();
var houseTask = SellHouse();
var carTask = BuyCar();

await Task.WhenAll(catTask, houseTask, carTask);

var cat = await catTask;
var house = await houseTask;
var car = await carTask;</code>
ログイン後にコピー

Task.WhenAll は、すべての子タスク (catTaskhouseTaskcarTask) が完了した場合にのみ完了する親タスクを作成します。 その後、各子タスクを待機して、その特定の結果を個別に取得します。

How Can I Efficiently Await Multiple Asynchronous Tasks with Diverse Result Types?

以上が多様な結果タイプを使用して複数の非同期タスクを効率的に待つにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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