舉例,用戶購買商品了,那么要扣錢吧,代碼這樣:private static object locker = new object();public void Buy()
{ lock(locker)
{ var member = 獲取會員();
if(member.money>= 商品.價格)
{
member.money -= 商品.價格; //其他操作
保存會員();
}
}
}這里是一定要用lock的吧?大家是不是也是這么做的??墒俏彝蝗话l現用的全局locker,這樣的話有多個用戶同時購買,那么豈不是只能有1個用戶在購買,其他都被阻擋了?這個問題大家是怎么做的啊?
1 回答

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
private readonly object locker = new object()
這樣子每個實例都lock自己的locker了,保證同一個實例同時只能有一個線程執行lock內的代碼。但不同的類實例可以同時執行操作
- 1 回答
- 0 關注
- 528 瀏覽
添加回答
舉報
0/150
提交
取消