public void Remove(T item)
{
locker.EnterWriteLock();
try
{
list.Remove(item);
}
}
以上是實例類的方法。說實例是myObject
。 關於上述片段,我的問題是這樣的:方法參數線程安全嗎?
線程調用myObject.Remove(A)
。
線程執行locker.EnterWriteLock()
。
線程兩個調用myObject.Remove(B)
。
線程1進入try塊並執行list.Remove()
。
此時item
的值是多少?即list.Remove()
將以A或B作爲參數被調用?
它們是什麼類型的'locker'變量? –
ReaderWriterLockSlim – Sam
這個問題本來很容易通過調試和檢查來解決。如果你發現答案的問題會更好。 –