JetBrains Rider 2024.1 ヘルプ

コード検査: ライブラリコードに「.ConfigureAwait(false)」がありません

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

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

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

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

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

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

  • UI モード — JetBrains Rider は、ConfigureAwait(true) 呼び出しを冗長として報告します。

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

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

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

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...

EditorConfig を使用する

JetBrains Rider は、EditorConfig 形式で定義されたコード形式スタイル、コード構文スタイル、C# の命名スタイル、コードインスペクション重大度レベルをサポートします。EditorConfig とは何ですか? JetBrains Rider はどのようにそれを拡張しますか? :EditorConfig は、同じコードで作業しているチームメンバー間、およびメンバーが使用する可能性のあるさまざまな IDE 間で一貫したコードスタイルを定義および維持するために使用される構成ファイ...

コード検査: 「ConfigureAwait」による冗長コンテキストのキャプチャー

このインスペクションは、UI モードで ConfigureAwait 分析が有効になっているスコープで呼び出しが冗長であると報告します。呼び出しの仕組みとその使用シナリオは、この Microsoft.NET ブログ記事やインターネット上にある他の多くの投稿で詳細に説明されていますが、の使用に関するアドバイスは次のように要約されます。パフォーマンスを向上させ、潜在的なデッドロックを回避するには、UI 以外のコードで使用します。ここでの例外は、Windows フォーム、WPF、ASP.NET など...