首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为所有服务器端代码调用ConfigureAwait的最好的办法?

为所有服务器端代码调用ConfigureAwait的最好的办法?

提问于 2017-12-22 10:58:16
回答 2关注 0查看 461

当你有服务器端代码(即一些ApiController),你的函数是异步的 - 所以他们返回Task<SomeObject>- 是否认为最好的做法是,当你等待你调用的函数ConfigureAwait(false)?

我已经读过,它更高性能,因为它不必将线程上下文切换回原始线程上下文。但是,对于ASP.NET Web Api,如果您的请求是在一个线程中进行的,并且你在ConfigureAwait(false)返回ApiController函数的最终结果时正在等待某个函数和调用,这可能会将你置于不同的线程中。

我已经打出了一个我在下面讨论的例子:

代码语言:txt
复制
public class CustomerController : ApiControlle
代码语言:txt
复制
{
代码语言:txt
复制
    public async Task<Customer> Get(int id)
代码语言:txt
复制
    {
代码语言:txt
复制
        // you are on a particular thread here
代码语言:txt
复制
        var customer = await SomeAsyncFunctionThatGetsCustomer(id).ConfigureAwait(false);
代码语言:txt
复制
代码语言:txt
复制
        // now you are on a different thread!  will that cause problems?
代码语言:txt
复制
        return customer;
代码语言:txt
复制
    }
代码语言:txt
复制
}

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档