ホームページ > バックエンド開発 > C++ > 複数の同時非同期タスクから結果を調整および取得するにはどうすればよいですか?

複数の同時非同期タスクから結果を調整および取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-28 03:21:07
オリジナル
615 人が閲覧しました

How Can I Coordinate and Retrieve Results from Multiple Concurrent Asynchronous Tasks?

複数の同時非同期操作とその結果を効率的に処理する

このガイドでは、複数の非同期タスクを同時に実行し、それぞれの結果を取得する方法を説明します。 3 つの独立した非同期操作があり、それぞれが固有の結果を生成するとします。目的は、これらのタスクを同時に実行し、すべてが完了したらそれぞれの結果にアクセスすることです。

Task.WhenAll メソッドは洗練されたソリューションを提供します。このメソッドは、すべての入力タスクが完了した場合にのみ完了する単一のタスクを作成します。 次に、各タスクの結果を含む配列を返します。

実際の実装は次のとおりです。

<code class="language-csharp">Task<string> catTask = FeedCatAsync();
Task<bool> houseTask = SellHouseAsync();
Task<int> carTask = BuyCarAsync();

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

string catResult = await catTask;
bool houseResult = await houseTask;
int carResult = await carTask;</code>
ログイン後にコピー

この例では、catTaskhouseTask、および carTask は非同期操作を表します。 Task.WhenAll はそれらを同時に開始します。 await Task.WhenAll(...) 行は、3 つのタスクがすべて完了するまで実行を一時停止します。

完了後、元の各タスクを待つことで個々の結果にアクセスできます。結果は catResulthouseResult、および carResult に保存され、さらに処理できるようになります。

非同期メソッドは呼び出されると、すぐに「ホット」タスク、つまりすでに開始されているタスクを返すということを覚えておくことが重要です。 したがって、実際の結果を取得するには、 (上記のとおり) または を使用する必要がありますawait。 一般的には、明確さと例外処理機能の点で Task.Result を使用することが推奨されます。await

以上が複数の同時非同期タスクから結果を調整および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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