1
我有一個問題,我需要調用一個線程安全的方法(即一個內部使用鎖定),如果條件爲真。我正在檢查的條件讀取了多個線程(_count)之間共享的變量,所以我需要在讀取它時鎖定以避免模糊讀取。這不會導致嵌套監視器鎖定(死鎖),因爲我正在鎖定已經線程安全的方法調用?下面鎖定如果條件
例子:
lock (this)
{
if (_count <= 10)
{
_someObj.DoSomethingThreadSafe(); //this method has its only locking internally
}
}
我將如何解決這一問題?
這段代碼不足以說明問題。爲什麼'DoSomethingThreadSafe'鎖定了一些東西是不好的? – mquander 2011-03-21 13:50:31
他問他的外部鎖是否不會因同一個對象上的內部鎖而發生死鎖。 – 2011-03-21 13:52:10