ConfigureAwait(false)
awaitの継続を、捕捉したSynchronizationContextやTaskSchedulerへ投げ返さないことを指示する.NETの記法。「必ずスレッドプールへ移る」保証ではない。
- 概念URI
https://comcomponent.com/knowledge/configureawait-false/
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- ConfigureAwait(false)は汎用ライブラリコードに対する本記事の推奨です。UIやアプリモデルに依存しない汎用ライブラリコードでは、ConfigureAwait(false)は有力な選択肢である / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ConfigureAwait(false)をUIスレッドのコンテキストに用いることは推奨されません。await後にUI更新やアプリ側コンテキストに依存する処理をするなら、ConfigureAwait(false)は付けないほうが自然である / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ConfigureAwait(false)はSynchronizationContextを前提とします。そのawaitがSynchronizationContext(またはデフォルト以外のTaskScheduler)を捕捉していた場合に限り、ConfigureAwait(false)はそこへ継続を戻すことを強制しないという意味を持つ。コンソールアプリやThreadPool上で動くライブラリコードのようにそもそもコンテキストが無い状況でも問題なく使え、その場合はplain awaitとの差がほとんど無い。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- ConfigureAwait(false)をUIスレッドのコンテキストに用いることは推奨されません。UIハンドラ自身でConfigureAwait(false)を付けると、その続きがUIに戻ることを強制しなくなり、直後のUI更新がクロススレッドアクセスになりかねないため、本記事はUIコードでの使用を避ける方針を取る。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ConfigureAwait(false)は汎用ライブラリコードに対する本記事の推奨です。UIや特定アプリモデルに依存しない汎用ライブラリコード(記事中のDocumentRepositoryのような形)にはConfigureAwait(false)を付けるのが自然で、呼び出し元のUIハンドラは素のawaitのままでよい分離ができる。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。