Task的使用

总结一下在 c# 中几种 Task 的用法.

方法适用场景
Task.Run通用,适用异步
Task.Factory.StartNew(TaskCreationOptions.LongRunning)钻牛角尖

下面全都是你想用 Task.Factory.StartNew 的必备条件

  1. 你想要新启一个线程来运行,因为会堵塞太久。
  2. 是同步方法。因为异步并不会在新启动的线程运行(参考链接),甚至因为开线程,切换线程影响性能。
  3. 会并发。如果最多同时 1 个,那没必要。
  4. 你很了解现在的线程池情况,你对线程池扩容的逻辑你不满意,你必须现在就申请一个新线程。否则会自动扩容的。
  5. 不想用 backgroundService后台执行mq消息队列替代