我需要能够在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环境中实现?