是否建议在数据库事务中使用SemaphoreSlim?

时间:2018-11-23 04:34:11

标签: c# multithreading async-await

我拥有这段用于更新记录的代码。 如果一个代码块中有多个await语句,我想知道如何使用SemaphoreSlim。

下面的代码段是否会发生死锁和递归锁,当它发生时,在使用SemaphoreSlim时如何避免死锁和递归锁?

SemaphoreSlim writelock = new SemaphoreSlim(1,1);

Public async task AddValueToDB(Valuedto value)
    {
         try{
                    await writelock.WaitAsync();
                    _db.tblAction.add(Valuedto);
                    await _db.SavechangesAsync();  
            }
           catch(Exception ex){throw ex;}
           finally{writelock.Release();}
     }
}

如果您需要有关我的要求的更多信息,请告诉我。

0 个答案:

没有答案