比如 有a b c d e五個(gè)人 同時(shí)登陸后臺(tái)。同時(shí)打開(kāi)了一個(gè)頁(yè)面。假如這個(gè)頁(yè)面執(zhí)行3個(gè)步驟就完成。 現(xiàn)在a 對(duì)頁(yè)面進(jìn)行了操作。并且已經(jīng)完成了這三個(gè)步驟。。其他幾個(gè)人都還沒(méi)有操作頁(yè)面。他們不知道 a已經(jīng)修改了這個(gè)頁(yè)面。 現(xiàn)在c用戶 去吧功能操作成了第二步。。 本來(lái) a 已經(jīng)把頁(yè)面操作到了第三步了?,F(xiàn)在又變成了第二步。。這樣這樣的話 就會(huì)造成操作上面的沖突。。請(qǐng)問(wèn)各位有沒(méi)有什么好的建議 。。
2 回答

翻翻過(guò)去那場(chǎng)雪
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
這是明顯的多線程并發(fā)問(wèn)題,解決要用到鎖的問(wèn)題。
先在該頁(yè)面定義一個(gè)全部的靜態(tài)變量
如:private static object m_opp=new object();
然后再要執(zhí)行步驟的代碼塊外面加:
Monitor.Enter(m_opp);
步驟一
步驟二
步驟三
Monitor.Exit(m_opp);
這樣就能防止多用戶同時(shí)操控了,希望對(duì)你有幫助。

達(dá)令說(shuō)
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
數(shù)據(jù)庫(kù)表里設(shè)置一個(gè)最后更新時(shí)間字段,每次操作提交之前,判斷一下 最后修改時(shí)間是否相同,如果不相同就提示已經(jīng)修改,重新獲取數(shù)據(jù)在修改。
- 2 回答
- 0 關(guān)注
- 785 瀏覽
添加回答
舉報(bào)
0/150
提交
取消