Scheduler.Default
совпадает с DefaultScheduler.Instance
.
Как DefaultScheduler
обрабатывает гром? DefaultScheduler
расположен поверх уровня абстракции платформы, который планирует работу в зависимости от того, на какой системе он работает.
Раньше это была сборка System.Reactive.PlatformServices.dll
, которая отличалась бы в зависимости от платформы, но для 4.x это просто пустая сборка фасада, чтобы оставаться совместимой с 3.x, с реализацией, перенесенной на System.Reactive.dll
.
Для DefaultScheduler:
- На данный момент для планирования немедленной работы используется
ThreadPool
. - Для периодов c событий (
SchedulePeriodic
) используется System.Threading.Timer
. - Для работы, которая выполняется максимально быстро, используется новый поток.
Подробная информация о том, какая служба платформы выбрана, содержится в EnlightenmentProvider .
Возможно, вы можете использовать DefaultScheduler
, если у вас есть длительные вычисления или периоды c, где TimeSpan очень маленький, или ноль, хотя EventLoopScheduler
может быть лучше.
Предпочитаю TaskPoolScheduler
, когда это возможно. Это легкая реализация, предназначенная для коротких вычислений.