[問題] C# Lock問題請教

看板Web_Design作者 (樹鳥)時間16年前 (2010/02/11 16:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
最近在寫一個計數器的機制,會先將count紀錄在application,一定量後再存在DB。 為了防止同時間很多人一起進來造成計數錯誤,所以要讓計數處理獨占作業。 最容易的做法是用Application.lock(),但是這樣的話所有的作業都會停下來等待, 所以想說是不是能用Lock()區段獨占,原先我是定義一個 private object objLock = new object() ; 然後去lock (objLock),但是這樣測試下是可能同時有人一起執行到lock區段。 看了MSDN的部分(http://msdn.microsoft.com/zh-tw/library/c5kehkcz.aspx)有提到 ----- 最佳作法是定義要鎖定的 private 物件,或者定義 private static 物件變數保護 所有執行個體通用的資料。 ----- 那是不是指我用以下的寫法,就可以確保這部分的執行不會同時進行呢? 還是即使Lock private static 物件變數,還是有可能會同時有人一起執行到這段程式? 請了解Lock機制的大大協助解答 謝謝 private static object objLock = new object() ; public Count() { lock (objLock) { 計數處理..... } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.220.110.100
文章代碼(AID): #1BSyIm-o (Web_Design)