ReSharper 2026.1 Help

コードインスペクション:ライブラリコードに「.ConfigureAwait(false)」がありません

このインスペクションは、 ライブラリモードで ConfigureAwait 分析が有効になっているスコープ内の待機可能オブジェクトに ConfigureAwait(false) 呼び出しを追加することを提案します。

ConfigureAwait() 呼び出しの仕組みとその使用シナリオは、 この Microsoft.NET ブログ記事(英語)やインターネット上にある他の多くの投稿で詳細に説明されていますが、 ConfigureAwait() の使用に関するアドバイスは次のように要約されます。

  • パフォーマンスを向上させ、潜在的なデッドロックを回避するには、UI 以外のコードで ConfigureAwait(false) を使用します。 ここでの例外は、Windows フォーム、WPF、ASP.NET などのアプリレベルのコードです。

  • ConfigureAwait(true) はデフォルトの動作に対応し、意味のあることは何もしないため、このような呼び出しは安全に省略できます。

ConfigureAwait() の使用箇所を分析するには、ReSharper は、それがアプリケーションレベルのコードか、汎用ライブラリコードかを知る必要があります。 デフォルトでは、ConfigureAwait 分析は無効になっているため、次の 2 つのモードのいずれかを選択して、各プロジェクトで分析を有効にする必要があります。

  • ライブラリモード — ReSharper は、 ConfigureAwait(false) 呼び出しを待機可能オブジェクトに追加することを提案します。

  • UI モード — ReSharper は ConfigureAwait(true) 呼び出しを冗長なものとして報告します。

ConfigureAwait 分析を有効にして、そのモードを選択する

  • プロジェクトで ConfigureAwait 分析を有効にするには、ソリューションエクスプローラーでプロジェクトを右クリックし、 プロジェクト項目のプロパティを編集する | ConfigureAwait 分析モード を選択してから、 ライブラリ または ユーザーインターフェース​ を選択します。

  • 現在のプロジェクトで ConfigureAwait 分析を有効にするには、任意の await キーワードにキャレットを置き、 Alt+Enter を押し、 ConfigureAwait 分析 を選択してから、 ライブラリ または ユーザーインターフェース​ を選択します。

  • EditorConfig を 使用する場合は、プロジェクト、フォルダー、ファイルの ConfigureAwait 分析モードを次のプロパティで指定できます: configure_await_analysis_mode = library または configure_await_analysis_mode = ui

2026 年 6 月 12 日