2

関数を持つクラスがあるとしましょう

class foo 
{
  ...

  void bar() {
    OutputDebugString(........);
     // mode code
  }
}

OutputDebugStringを使用して関数を実行している現在のスレッド (またはそれがメイン アプリケーションの場合) の ID を出力することは可能ですか?

デバッグしている大規模なアプリケーションがあり、デッドロック状態を発見しました。どのスレッドがデッドロックに含まれているかを確認したいと考えています。独自のクリティカル セクションをロックしているのと同じスレッドである可能性があるためです。

4

2 に答える 2

0

を使用しGetCurrentThreadId()ます。

スレッドはクリティカル セクションでデッドロックできないことに注意してください。スレッドがクリティカル セクションへのロックを取得すると、必要なだけ同じロックを解放して再入力できます (mutex の場合も同じです)。成功したロック (再) エントリごとにクリティカル セクションのロックを解除して、他のスレッドがデッドロックにならないようにしてください。

于 2011-10-24T23:20:53.367 に答える
0

機能をご覧くださいGetCurrentThread

于 2011-10-24T11:44:11.037 に答える