2017-06-30 7 views
0

コードにAとBがある場合、ロックに問題があります.Aには同じロックを持つロック呼び出しコードBがあります。この操作で将来問題が発生しますか。Xamarin c#:同じロックの中でロックする

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

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

理由私は現在、アプリケーションのクラッシュに直面しており、上記のようなロックがあることを確認しました。クラッシュは通常、リストビューをタップするとすぐに起こります。上記のCodeAのロックを解除した後、クラッシュは起きていないようですが、私はまだ意味がありません。

答えて

0

.NET Monitorとそれゆえにlockステートメントも再帰的なので、これは問題ではありません。 そうでない場合、クラッシュではなくデッドロックが表示されます。 =>クラッシュには別の理由が必要です。

関連する問題