使 TaskCreationOptions.LongRunning 建议更加明确

作者: bartelink创建于 2020年7月7日更新于 2021年5月21日

有一个关于避免使用 `TaskCreationOptions.LongRunning` 的说明: 备注: `Task.Factory.StartNew` 有一个选项 `TaskCreationOptions.LongRunning`, 它会在后台创建一个新线程并返回一个表示执行的任务。正确使用它需要传递几个不明显的参数, 以在所有平台上获得正确的行为。 然后, 代码示例继续使用: var thread = new Thread(ProcessQueue) { IsBackground = true }; thread.Start(); 我所缺少的部分是, 我们如何从"API 很麻烦"转到"看, 你最好使用 Thread.Start"; 是因为繁琐的语法 _还是因为它本身就更好, 并且 `TaskCreationOptions.LongRunning` 应该几乎被淘汰, 所以我们要花费精力明确地创建一个线程? 我建议使用答案中的任一项: a) 提交一个 PR 来切换示例, 以使用 `Task.Factory.StartNew`, 或 b) 明确说明, 避免使用 `Task.Factory.StartNew`, 而 `(Thread {IsBackground = true}).Start()` 是推荐的替代方案

内容来源: davidfowl/AspNetCoreDiagnosticScenarios