我有几个执行自定义计算的计算器类。从历史上看,这些类的方法都是通过 BackgroundWorker 启动的,因为它们很长,运行时很明智。
最近我正在转换应用程序以使用 C# 中的新异步支持,现在通过 Task.Run() 运行相同的方法,但我注意到它们的运行速度慢了大约 5 - 7%(这对我来说很重要)应用)。
为什么线程池线程比 BackgroundWorker 正在做的任何事情都慢,是否有明显/预期的原因?
我没有对计算逻辑进行任何更改;我只是将计算方法传递给 Task.Run() (并等待它),在它被提供给 BackgroundWorker 之前,所以我很确定我自己没有引入任何导致速度降低的更改。