.net core 在Scheduler.Default和TaskPoolScheduler.Default之间选择System
在.net core 在Scheduler.Default和TaskPoolScheduler.Default之间选择System,.net-core,system.reactive,.net Core,System.reactive,在Scheduler.Default和TaskPoolScheduler.Default之间进行选择时,我遇到了很大的困难 我看到有人建议TaskPoolScheduler更高效/优化,它当然有更明确/具体的好处;然而,这并不能帮助我理解真正的区别,因为它们在功能上似乎做了相同的事情 When是调度程序。Default优于TaskPoolScheduler。Default反之亦然?调度程序。Default与DefaultScheduler.Instance相同 DefaultScheduler如
Scheduler.Default
和TaskPoolScheduler.Default
之间进行选择时,我遇到了很大的困难
我看到有人建议TaskPoolScheduler更高效/优化,它当然有更明确/具体的好处;然而,这并不能帮助我理解真正的区别,因为它们在功能上似乎做了相同的事情
When是
调度程序。Default
优于TaskPoolScheduler。Default
反之亦然?调度程序。Default
与DefaultScheduler.Instance
相同
DefaultScheduler
如何处理thunksDefaultScheduler
位于一个平台抽象层的顶部,该层根据它所在的系统安排工作
这曾经是System.Reactive.PlatformServices.dll
程序集,根据平台的不同而有所不同,但是对于4.x来说,它只是一个空的外观程序集,以保持与3.x的兼容性,实现被移动到System.Reactive.dll
对于DefaultScheduler:
- 到目前为止,为了安排即时工作,使用了
ThreadPool
- 对于周期性事件(
),使用SchedulePeriodic
System.Threading.Timer
- 对于运行速度尽可能快的工作,使用新线程
DefaultScheduler
,尽管EventLoopScheduler
可能更好
如有可能,首选TaskPoolScheduler
。这是一个轻量级的实现,用于短时间的计算