很明显,使用“等待”从 UI 线程卸载任务是一件好事 - UI 线程可以返回处理 Windows 消息。
但是,假设您使用 Task.Run 启动等待的任务,它会在 ThreadPool 的线程上启动您的代码。在该代码中执行“等待”是否有任何价值(从技术上讲它甚至可以完成?)?
我很想说“不”。为什么要从 ThreadPool 线程中卸载工作——除了处理分配给它的原始任务之外,它还需要做什么?
现在,如果有人回复说如果我执行 await,ThreadPool 线程实际上可以“释放”到池中并在其他地方使用,而我的异步工作仍在继续……
迈克尔