如何根据变量锁定ASP.NET MVC控制器操作?

时间:2018-01-10 14:30:41

标签: c# asp.net asp.net-mvc concurrency

我需要能够在MVC操作中锁定某些代码集,具体取决于变量的值

以下代码将锁定整个操作

public ProductsController : Controller
{
    private static object Lock = new object();

    public ActionResult MyAction(int id)
    {

      lock (Lock)
      {
        //  do my work
      }    
  }
}

但我希望允许并发线程在' id'的值时并行运行。变化

例如假设上面的控制器同时收到以下四个请求

request A : id=1
request B : id=1
request C : id=2 
request D : id=2

使用上面的代码,这四个请求将一个接一个地处理

但我希望(A,B)和(C,D)并行运行,如下所示

request A & B need to wait till one of them finish their work to get processed 
request C & D need to wait till one of them finish their work to get processed 

这是否可以在MVC环境中实现?

0 个答案:

没有答案