1

在调试器中,当执行这样的代码行时,我“冻结”了:lock (myvar)显然其他人正在持有myvar. 但是我希望在这条线上myvar应该是免费的。所以我想知道代码的哪一部分myvar(来自另一个线程)。我怎样才能做到这一点?我知道哪个线程持有它(因为我只有另一个线程),但我不知道在哪里。

upd解决了,我忘记打电话Monitor.Exit(myvar)Monitor.TryEnter(myvar)

4

2 回答 2

3

如果您正在使用Visual Studio 2010,您可以查看Parallel Stacks

于 2012-04-09T08:16:56.943 回答
2

lock()语句使用Monitor不支持查询锁定线程的类。
在 Fx 4.5 中,您可以检查Monitor.IsEntered(myVar)但仅此而已。

其余的应该来自​​您的代码逻辑。

于 2012-04-09T08:16:12.280 回答