Xamarin c#:锁在同一个锁内

时间:2017-06-30 03:55:43

标签: xamarin concurrency locking

我遇到锁定问题,如果我有代码A和B,其中A有一个锁定调用代码B也具有相同的锁定。这个操作将来是否会引发问题。

method CodeA () {
    lock(A) {
       CodeB ();
    }
}

method CodeB () {
  lock(A) {
    some database code.
  }
}

我问的原因是我目前在应用程序中遇到了一些崩溃,并且看到上面有一个锁。当我点击列表视图时,崩溃通常很快就会发生。我删除上面CodeA中的锁后,似乎没有发生崩溃,我的意思是还没有......如果事情没问题,我会连续尝试一两个小时,我认为这是一个问题。

1 个答案:

答案 0 :(得分:0)

这不是问题,因为.NET Monitor因此lock语句也是递归的。 如果它们不存在,你也会看到这里的僵局,而不是崩溃。 =>你的崩溃必须有另一个原因。