1

デバッガーでは、このようなコード行を実行すると「フリーズ」します。lock (myvar)明らかに、他の誰かがを保持していmyvarます。しかし、私はこのラインでそれmyvarが無料であるべきだと期待しています。myvarしたがって、コードのどの部分が(別のスレッドから)保持されているのかを知りたいのです。どうやってやるの?どのスレッドがそれを保持しているのかはわかりますが(他のスレッドが1つしかないため)、どこにあるのかわかりません。

updがMonitor.Exit(myvar)解決しました、私は1つの後に電話するのを忘れましたMonitor.TryEnter(myvar)

4

2 に答える 2

3

使用している場合は、並列スタックVisual Studio 2010を調べることができます

于 2012-04-09T08:16:56.943 に答える
2

このlock()ステートメントはMonitor、ロックスレッドのクエリをサポートしていないクラスを使用しています。
Fx 4.5では確認できますがMonitor.IsEntered(myVar)、それだけです。

残りはコードのロジックから取得する必要があります。

于 2012-04-09T08:16:12.280 に答える