web.api中的同步和异步方法

问题描述 投票:1回答:1

有人可以解释一下这段代码是否存在潜在的僵局。将同步数据库调用与异步数据库调用混合,如下面的代码。或者如果首先执行异步调用,那就是死锁的风险。

    [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..
c# asynchronous asp.net-web-api async-await
1个回答
0
投票

在这种情况下,异步qazxsw poi调用将不会启动,直到同步qazxsw poi完成。

一旦你没有在async / await函数中混合阻塞调用,如AsyncDBMCallMethodSyncDBCallMethod,并正确等待异步函数,你应该能够同时进行异步和同步调用。

参考Result

© www.soinside.com 2019 - 2024. All rights reserved.