.Result / .Wait() / .GetAwaiter().GetResult()
Taskの完了を同期的に待つ3つの手段の総称。呼び出し元のスレッドをブロックする点は共通で、違うのは主に例外の包まれ方だけである。
- 概念URI
https://comcomponent.com/knowledge/task-result-wait/
- 別名・表記
- 同期的なTask待機 / GetAwaiter().GetResult()
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- .Result / .Wait() / .GetAwaiter().GetResult()はデッドロック(deadlock)の原因になることがあります。UIスレッドで.Result/.Wait()/.GetAwaiter().GetResult()を呼ぶと、呼び出した先のawaitが捕まえたUIコンテキストへ継続が戻れなくなる。必ずデッドロックするとは限らず、たまたま継続がUIに戻らないコードなら単にUIをフリーズさせるだけのこともある。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- .Result / .Wait() / .GetAwaiter().GetResult()をUIスレッドのコンテキストに用いることは推奨されません。本記事は.Result・.Wait()・.GetAwaiter().GetResult()の3つを同じ匂いとして扱い、UIでは使わない方針を取る。GetAwaiter().GetResult()も例外の包まれ方が違うだけでUIスレッドを塞ぐ本質は同じとしている。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。