-1

私は.netでスレッド化するのが初めてで、使用できる良い例を見つけるのは難しい. ここで記事を読んでいます。マネージド スレッディングのベスト プラクティスしかし、まだよくわかりません。現在、2 つのスレッドを同時に実行しようとしているプログラムがありますが、異なることを行っています。1 つのスレッドが想定どおりに動作していますが、2 つ目のスレッド (私は PrintThread と名付けました) を開始すると、PrintThread とメイン スレッドが同じコード行を実行しています。これを回避するには、syncLock ステートメントを調べる必要がありますか?

4

1 に答える 1

1

ガベージコレクションが不可能な場所で停止しているため、式を評価できません

これは単なるデバッガーの診断であり、ウォッチ式を表示できないことを示しています。Debug + Break All を使用してデバッガーに侵入すると、この問題が発生する傾向があります。

一般に、2 つ以上のスレッドが同じコードを実行している場合、コードをデバッグするのは非常に困難です。すべてのスレッドがブレークポイントにヒットするため、ブレークポイントは無効になります。そのための解決策の 1 つは、単体テスト (推奨) を使用する以外に、Debug + Windows + Threads を使用することです。このウィンドウにアクティブなスレッドが一覧表示されます。それらを右クリックして、「フリーズ」を選択できます。これにより、スレッドが再び「解凍」されるまでスレッドがフリーズします。これにより、1 つのスレッドのみのデバッグに集中できます。

于 2012-11-09T15:03:48.547 に答える