首页 新闻 搜索 专区 学院

asp.net 如何防止多人同时操作一个功能。

0
[已解决问题] 解决于 2011-06-27 10:07

比如 有a b c d e五个人 同时登陆后台。同时打开了一个页面。假如这个页面执行3个步骤就完成。 现在a 对页面进行了操作。并且已经完成了这三个步骤。。其他几个人都还没有操作页面。他们不知道 a已经修改了这个页面。 现在c用户 去吧功能操作成了第二步。。  本来 a 已经把页面操作到了第三步了。现在又变成了第二步。。这样这样的话 就会造成操作上面的冲突。。请问各位有没有什么好的建议 。。

yzy的主页 yzy | 菜鸟二级 | 园豆:317
提问于:2011-06-24 16:29
< >
分享
最佳答案
0

这是明显的多线程并发问题,解决要用到锁的问题。

先在该页面定义一个全部的静态变量

如:private static object m_opp=new object();

然后再要执行步骤的代码块外面加:

Monitor.Enter(m_opp);

步骤一

步骤二

步骤三

Monitor.Exit(m_opp);

这样就能防止多用户同时操控了,希望对你有帮助。

小胆粗心 | 菜鸟二级 |园豆:308 | 2011-06-24 18:01
非常感谢
yzy | 园豆:317 (菜鸟二级) | 2011-06-27 10:07
其他回答(2)
0

数据库表里设置一个最后更新时间字段,每次操作提交之前,判断一下 最后修改时间是否相同,如果不相同就提示已经修改,重新获取数据在修改。

sunlary | 园豆:934 (小虾三级) | 2011-06-24 16:58
0
erlan80 | 园豆:8 (初学一级) | 2011-06-25 10:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册