我遇到锁定问题,如果我有代码A和B,其中A有一个锁定调用代码B也具有相同的锁定。这个操作将来是否会引发问题。
method CodeA () {
lock(A) {
CodeB ();
}
}
method CodeB () {
lock(A) {
some database code.
}
}
我问的原因是我目前在应用程序中遇到了一些崩溃,并且看到上面有一个锁。当我点击列表视图时,崩溃通常很快就会发生。我删除上面CodeA中的锁后,似乎没有发生崩溃,我的意思是还没有......如果事情没问题,我会连续尝试一两个小时,我认为这是一个问题。
答案 0 :(得分:0)
这不是问题,因为.NET Monitor
因此lock
语句也是递归的。
如果它们不存在,你也会看到这里的僵局,而不是崩溃。
=>你的崩溃必须有另一个原因。