有人可以解释一下这段代码是否存在潜在的僵局。将同步数据库调用与异步数据库调用混合,如下面的代码。或者如果首先执行异步调用,那就是死锁的风险。
[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..
在这种情况下,异步qazxsw poi调用将不会启动,直到同步qazxsw poi完成。
一旦你没有在async / await函数中混合阻塞调用,如AsyncDBMCallMethod
或SyncDBCallMethod
,并正确等待异步函数,你应该能够同时进行异步和同步调用。
参考Result