【发布时间】:2021-07-31 04:06:28
【问题描述】:
当遇到 await 时,控制权传递给调用者,而 awaited 调用等待响应。
在将控制权传递给调用者之前,会存储同步上下文。
在 Windows 应用程序的情况下,同步上下文是主 UI 线程。因此,当等待完成时,保存的上下文将被恢复,等待下面的其余代码将使用原始同步上下文执行。
我想问一下,所有项目都存储在同步上下文中。例如:
-
当前线程
-
局部变量值
-
还有什么?
【问题讨论】:
-
我很确定答案没有什么有趣的(与存储请求和文化的 ASP.Net 应用程序不同),可能会保留一些跟踪 ID...看看您对示例的推理会很有趣存储-“当前线程”(因为它始终是同一个主 UI 线程)或“局部变量”(因为实际上没有异步部分开始时原始方法返回/完成)
标签: c# asynchronous async-await