尽管我不时在我的代码中使用 Observable 和 Rx,但在“推送模型”及其使用方面,我仍然有这个问题。
例如,假设我有这个简单的代码:
private readonly static List<string> numbers = new List<string>
{
"1",
"2",
"3",
"4",
"5"
};
static void Main(string[] args)
{
PrintCollection();
Console.ReadLine();
numbers.Add("6");
Console.ReadLine();
}
private static void PrintCollection()
{
IObservable<string> observable = numbers.ToObservable();
observable.Subscribe<string>(x => { Console.WriteLine(x); });
}
当程序运行时,只会打印 1-5,但不会打印 6,除非我使用 ObservableCollection 之类的东西并连接“CollectionChanged”事件。然而,这让我想知道“推送模型”到底是什么。我一直认为“推送模型”意味着一旦数据(集合)订阅了一个事件,所有新添加到该集合的数据也将订阅同一个事件。
此外,我看到的大多数使用 Observable 的示例似乎都是 WPF、视图模型驱动的实现,我想知道是否有人将它用于任何后端处理,典型的例子是什么?