如何排除故障:为什么我无法获得锁定?

时间:2012-04-09 08:11:21

标签: c# visual-studio-2010

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

更新已解决,我忘记在Monitor.Exit(myvar)之后致电Monitor.TryEnter(myvar)

2 个答案:

答案 0 :(得分:3)

如果您使用的是Visual Studio 2010,则可以查看Parallel Stacks

答案 1 :(得分:2)

lock()语句使用不支持查询锁定线程的Monitor类。
在Fx 4.5中,您可以检查Monitor.IsEntered(myVar),但这是关于它的。

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