async 与 Thread 的错误结合

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

在 TAP 出现之前,可以通过 Thread 实现多线程和异步操作,但不应该尝试使用 Thread 执行类似的异步操作,因为会浪费开启线程的花销。API 设计时应提供 Task 相关的重载,以支持 TAP 操作,Rider 可以观测线程的生命周期。

🎯

关键要点

  • 在 TAP 出现之前,可以通过 Thread 实现多线程和异步操作。
  • 不应该尝试使用 Thread 执行类似的异步操作,因为这浪费了开启线程的花销。
  • 使用 async 关键字与 Thread 结合的写法是错误的,IDE 会提示取消 async 关键字。
  • Thread 的所有重载中并没有支持 Task 相关的重载,async void 不推荐在非事件处理程序中使用。
  • 检查 API 是否支持 TAP 操作的规则是查看是否存在 Task 相关的重载。
  • 昙花线程是指在使用 await 后,线程提前结束,造成资源浪费。
  • 可以通过 Rider 观测线程的生命周期,查看线程运行所花费的时间。
  • 本文演示了错误的使用方式以及如何使用 Rider 来观测线程的生命周期。
🏷️

标签

➡️

继续阅读