当前位置:编程学习 > C#/ASP.NET >>

.net 中lock 是否可以这样用,表单在千分之几秒内被提交了多次

看了lock的一些资料没有实际操作过。最近遇到这样一个问题是否可以用lock解决。lock指代的是一个用户还是服务器中的一个线程?

首先是我们的用户量为50000+ 每小时15000+记录。最近新开发的一个系统中遇到这样一个问题。测试中在内网里,表单提交很正常的过了,但是提交给用户试用后,发现有很多相同单号的数据在1000之几秒内被提交了好多次,疑似网络延迟,但系统是有做判断的,如果第一次做的是插入,以后做更新,并且也有做事物。现在就是莫名的多了很多数据。目前的解决方案是在做插入时先判断是否存在,然后无论存在与否都先删除一边,做了一个双保险。求更好的解决方案。 --------------------编程问答-------------------- 如果你说的是C#的关键字lock,它表示锁定一个临界区对象,使得其中的代码只能被拥有锁的那个线程同步执行。没有你说的那些什么系统、服务器、事务之类的功能。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
如果你说的是C#的关键字lock,它表示锁定一个临界区对象,使得其中的代码只能被拥有锁的那个线程同步执行。没有你说的那些什么系统、服务器、事务之类的功能。

嗯,有什么办法解决我的那个问题。看锁主要是想解决手头的问题,请帮助。help me --------------------编程问答-------------------- 这个要看你的代码了。相同单号是指分配的单号出问题了还是同一笔数据被提交了多次? --------------------编程问答-------------------- 在SERVER保存一个最近1s的提交集合,新到的提交检查是否已提交 --------------------编程问答-------------------- 为什么要在程序里lock?直接用事务在数据库做不就好了 --------------------编程问答-------------------- 应该可以处理相同单号的问题

lock就是执行块,可么执行完lock内的代码,要么不执行 lock的用法是这么理解的

不过要完全处理单号问题还要配合单例模式和静态方法,单号通过静态方法+lock去创建

不过也可以用guid来创建唯一的订号
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,