Async/await 是一个很好的语法糖

Async/await is a fine syntactic sugar

我们可以说 C# async/await 模式是某种 (智能)糖语法 ?

因为据我所知,在最后,它 "just" 为程序员隐藏了(内部)工作线程的所有实现。

是的,await 没有 CLR 支持。它在编译时消失了。任何你可以用 await 写的东西,不用它也可以写。

等待任务是一种奇特的调用方式 ContinueWith :)

反编译一个使用 await 的程序集,看看它是如何工作的。

async/await 确实是语法糖,但是,它不只是隐藏线程。仅仅因为您在方法中使用 asyncawait 并不意味着您正在创建线程。

来自 MSDN 文章Asynchronous Programming with Async and Await (C# and Visual Basic)

The async and await keywords don't cause additional threads to be created. Async methods don't require multithreading because an async method doesn't run on its own thread. The method runs on the current synchronization context and uses time on the thread only when the method is active. You can use Task.Run to move CPU-bound work to a background thread, but a background thread doesn't help with a process that's just waiting for results to become available.