[解決済み】複数のタスクを待機させ、異なる結果を得ることができる。
2022-03-26 17:30:42
質問
3つのタスクがあります。
private async Task<Cat> FeedCat() {}
private async Task<House> SellHouse() {}
private async Task<Tesla> BuyCar() {}
これらはすべて、私のコードを続行する前に実行する必要があり、それぞれからの結果も必要です。どの結果もお互いに共通するものはありません。
3つのタスクが完了するのを待ち、結果を得るにはどうすればよいでしょうか。
どのように解決するのですか?
を使用した後
WhenAll
を使用すると、結果を個別に引き出すことができます。
await
:
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;
を使用することもできます。
Task.Result
(この時点ではすべて正常に終了していることが分かっているので)。しかし、私は
await
は明らかに正しいからです。
Result
は、他のシナリオで問題を引き起こす可能性があります。
関連
-
[解決済み] 複数の例外を一度にキャッチする?
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
-
[解決済み] 非同期Task<T>メソッドを同期的に実行するにはどうしたらいいですか?
-
[解決済み] 複数のタスクにasync/awaitを使用する
-
[解決済み] C#でawaitを使わずに非同期メソッドを安全に呼び出す方法
-
[解決済み] await/asyncを使用しているときにHttpClient.GetAsync(...)が返らない
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
-
[解決済み】複数の非同期タスクを実行し、すべてのタスクが完了するのを待つ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】WebResource.axdとは何ですか?