Rx.NET 中的调度器、主题与适配
1. 调度器(Schedulers)
1.1 调度器的服务
Rx 通过调度器执行特定工作,调度器能提供以下三种服务:
-决定执行时间:例如,当观察者订阅冷源时,决定是立即将源的项传递给订阅者,还是推迟该工作。
-在特定上下文运行工作:调度器可能决定始终在特定线程上执行工作。
-跟踪时间:一些 Rx 操作依赖时间,调度器提供时间的虚拟化模型,确保可预测的行为并便于测试,使 Rx 代码无需依赖 .NET 的DateTimeOffset类报告的当前时间。
1.2 调度器角色的相互依赖
调度器的前两个角色有时相互依赖。例如,在用户界面应用程序中,有多种调度器可供使用:
-CoreDispatcherScheduler:用于使用 .NET Core 配置文件的 Windows 8 应用。
-DispatcherScheduler:用于 WPF 应用程序。
-ControlScheduler:用于 Windows Forms 程序。
-SynchronizationContextScheduler:适用于任何 UI 技术,但对细节的控制略少于特定框架的调度器。
这些调度器的共同特点是确保工作在适合访问 UI 对象的上下文中执行,通常意味着在特定线程