JetBrains Rider 2026.1 Help

マルチスレッドおよび非同期アプリケーションのデバッグ

マルチスレッドアプリケーションは、一度に複数のスレッドを追跡する必要があるため、デバッグが常に困難です。 さらに、マルチスレッドアプリケーションでは、不均等なワークロード分散、ロック競合、シリアル実行など、新しいタイプのバグやパフォーマンスの問題が発生します。

デバッグセッションでステップ実行していると連続した処理の錯覚を受けがちですが、マルチスレッドアプリのデバッグ時には役立たないことが多く、誤解を招く場合があります。 並行性バグの可能性がある問題を調査する際は、逐次ステップ実行よりもブレークポイントを活用する方が有効です。 例えば、 条件付きブレークポイント (たとえば、スレッド ID などスレッド固有のプロパティを使ってブレークポイントを発動させる)を活用すると、特定のスレッドに集中したい場合にとても役立ちます。 データブレークポイントは、任意のスレッドが特定オブジェクトのマークされたプロパティを変更したときに実行を停止します。

マルチスレッドおよび非同期アプリケーションをデバッグするには、次の機能を使用します。

  • デバッグウィンドウスレッド & 変数 タブでは、左側のペインにアプリケーションのすべてのスレッドが表示され、次のペインには選択したスレッドのすべてのスタックフレームが一覧表示されます。

    JetBrains Rider: デバッグウィンドウでスレッドを選択する
  • Parallel Stacks タブは、 デバッグ ウィンドウでスレッドとそのスタックフレームを図として表示し、スレッドの分析を簡素化します。

  • デバッグ ウィンドウの タスクタブを使用すると、アプリケーションの現在の実行ポイントにおける System.Threading.Tasks.Task オブジェクトと ValueTask オブジェクトの状態に関する詳細情報を取得できます。

  • 現在のスレッドの ID は、エディター内の 現在の実行ポイントに沿って表示されます。

スレッドの凍結と解凍

スレッドの実行順序を制御するには、特定のスレッドを一時停止 (フリーズ) および再開 (フリーズ解除) することができます。 この手法は、デッドロック、競合状態、その他の同時実行の問題を調査できます。

  1. デバッグウィンドウ の次のいずれかのビューで、凍結または凍結解除するスレッドを見つけます。

    • スレッド & 変数 タブの左側の 2 つの列(スレッドとフレーム)

    • Parallel Stacks タブ

    • タスクタブのテーブルまたはグラフ表示

  2. 目的のスレッドを右クリックし、 スレッドの凍結 または その他のスレッドを凍結 を選択します。 凍結されたスレッドは JetBrains Rider: Frozen thread アイコンとともに表示されます。

  3. フリーズを解除するには、スレッドをクリックして スレッドの凍結解除 を選択するか、対応するビュー内の任意の場所をクリックして すべてのスレッドを凍結解除 を選択します。

JetBrains Rider: スレッドの凍結
2026 年 6 月 12 日