我在阅读IntroToRx,我在示例代码中遇到了一些问题。这里是总和我的代码:反应性扩展:为什么这会立即退出?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace LearningReactiveExtensions
{
public class Program
{
static void Main(string[] args)
{
var observable = Observable.Interval(TimeSpan.FromSeconds(5));
observable.Subscribe(
Console.WriteLine,
() => Console.WriteLine("Completed")
);
Console.WriteLine("Done");
Console.ReadKey();
}
}
}
如果我理解正确的书,这应该写数字序列到控制台,每五秒钟一次永远因为我从来没有Dispose()
序列。
但是,当我运行代码时,我所得到的只是最后的“完成”。没有数字,没有“完成”,只有“完成”。
我在这里做错了什么?
这并不是说我缺乏耐心;相反,我认为除非顺序已经完成,否则“完成”将不会显示,例如,从来没有在这个例子。我理解的根本缺陷。 –
我很担心我已经为Done条款和Completed做了一个例子。如果您将“已完成”这个单词换成“已完成”,那么您的程序会更准确。理想情况下也捕获订阅,然后将其置于'ReadKey()'之后。 –