ASP .NET MVC / API方法只调用队列

时间:2017-01-26 15:51:17

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

控制器的方法为 OnlyOneCallPerUser

如果之前未完成,用户如何锁定执行方法?

public class SomeController : ApiController
{
    public object OnlyOneCallPerUser()
    {
        //CALL START
        var userId = this.User;

        //WAIT BEFORE PREVIOUS CALL ENDED FOR userId 
        ... some code

        return true; //CALL END
    }
}

我尝试使用命名信号量

Semaphore sem = new Semaphore(1, 1, USERID);
sem.WaitOne();
... some code
sem.Release();

但有些时候都挂在 sem.WaitOne()

我认为没有运行 sem.Release()

尝试 - 捕获 - 最后使用

我可以用这个逻辑吗?

0 个答案:

没有答案