關於“鎖”的問題,專案比較大的情況下不能直接隨便的加樂觀鎖,不想麻煩改資料庫,不想用lock排隊等
阿新 • • 發佈:2018-12-11
private static Dictionary<int, object> lockObj = new Dictionary<int, object>(); private object getObj(int bedId) { object o = null; bool haveValue = lockObj.TryGetValue(bedId, out o);
if (haveValue) { return o; } else { lockObj.Add(bedId, new object()); return lockObj[bedId]; } }
var lockbedId = getObj(model.FK_BedInfo); lock (lockbedId) {
//想放的業務邏輯程式碼
}