我正在使用C#和.NET Framework 4.6.1开发ASP.NET MVC Web Api 2.2应用程序。
我有一个带有关键代码的网络方法,如果它现在正在运行,我不想运行它。此代码将新数据插入到数据库中,如果有两个调用运行它,它会将相同的数据插入到数据库中,从而导致PK违例异常。
这是Web Api方法标志:
[HttpPut]
[Route("api/CodesManager/InsertNewCodes/{aggregationLevel}")]
public HttpResponseMessage InsertNewCodes(
byte aggregationLevel)
在这个方法中,有一个调用另一个类方法,我试图用lock
包围它但我不确定我是否锁定它,下一个调用将等待释放锁定或他们将被拒绝。
如何锁定此关键部分并拒绝来电,直到第一个结束?