在项目中有一个功能模块, 建设银行网银打款的! 当支付成功的时候 他们的程序回来请求我这边的一个页面!我在数据库中有一个状态标识,如果是 没有处理的数据,我就拿来处理。
当客户在使用程序的时候,程序上出现了一个问题,那就是给客户加款重复!也就意味着,我的方法被在同一时刻执行了两次,或者说在状态还没有被修改过来的时候,就已经被修改了!
当中情况的时候 我使用lock来锁上我编写的代码:
定义全局变量 static object _lock =new object();
lock (_lock)
{
try
{
//在此编写代码
}
当然这只是在并发量少的情况下使用,如果并发量大了,就要考虑其他方式!