在UI线程上使用await和阻塞调用一样吗?

Wat*_* v2 2 c# multithreading asynchronous task

只是阅读和思考:如果我await在主UI线程中调用一个方法,这就等于是一个阻塞调用,对,因为没有调用UI线程的线程?

例如:

int Main()
{
    // This would be a blocking call, right?
    await PrintTwoMillionTimes("Hello");

    Console.WriteLine("Phew! Done!");
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 5

没有; 整个问题await是它不是一个阻塞的电话.
编译器将代码await转换为回调后的代码.

只要您正在等待的事情表现良好(意味着它不能同步完成其工作),您的UI就可以了.