我试图了解异步等待行为,特别是它如何影响主线程,所以我的问题与以下代码相关:
static async Task Main(string[] args)
{
await LongAction();
}
static Task LongAction() => Task.Delay(10000);
Run Code Online (Sandbox Code Playgroud)
主线程LongAction执行时会发生什么。据我了解,如果调用者线程不是主线程(让我们称之为线程2),在可等待操作进行期间,该线程(线程2)将返回到ThreadPool(使用默认任务调度程序)。但是主线程会发生这种情况吗(看起来不是这样,因为最初它不是从 TP 中获取的)?如果主线程是具有线程上下文的 UI 线程怎么办?