有人可以解释一下此代码是否可能造成死锁。 将同步数据库调用与异步数据库调用混合在一起,例如下面的代码。或者,如果首先执行了异步调用,那将带来死锁的风险。
[Route("{id}/someobjects")]
[ResponseType(typeof(IEnumerable<SomobjectDto>))]
public async Task<IHttpActionResult> GetSomeobjects(string id)
{
var syncMethodResult = SyncDBCallMethod(); //In this method there is a databas call..
var asyncMethodresult = await AsyncDBMCallMethod(1L); //In this method there is a Async databas call..
答案 0 :(得分:0)
在这种情况下,直到同步AsyncDBMCallMethod
完成后,异步SyncDBCallMethod
调用才会开始。
一旦您没有在异步/等待功能以及正确的 await 异步功能中混合使用Result
或.Wait
之类的阻塞调用,则应该能够进行异步和同步一起打电话。