在异步方法中多次调用await时使用哪个线程?

时间:2019-01-17 20:28:52

标签: c# async-await

当从一个可以说的UI线程中调用一个异步方法时,如果运行时偶然遇到一个等待行,它将把等待的任务交给工作线程并释放UI线程。基于这个问题,我的问题是,当异步方法具有多个等待并且对于ConfigureAwait错误或真实情况时,运行时是否每次遇到等待块时都会切换线程?如果是这样,这是否会导致多次等待的方法中发生大量线程切换?

请参见下面的代码

static async Task MainAsync()
{
    /* worker thread takes over */
    await awaitable; 

    /* worker thread or the original thread
     * (depending on configure await) 
     * hands execution over to another worker thread? */
    await anotherawaitable;       
}

是这种情况吗?

0 个答案:

没有答案