如何将MainEngine
可观察转换为冷?从这个例子:热/冷可观察,乘以用户
public IObservable<int> MainEngine
{
get
{
Random rnd = new Random();
int maxValue = rnd.Next(20);
System.Diagnostics.Trace.TraceInformation("Max value is: " + maxValue.ToString());
return (from sinlgeInt in Enumerable.Range(0, maxValue)
select sinlgeInt).ToObservable();
}
}
public void Main()
{
// 1
MainEngine.Subscribe(
onNext: (item) => { System.Diagnostics.Trace.TraceInformation("Value is: " + item.ToString()); }
);
// 2
MainEngine.Subscribe(
onNext: (item) => { System.Diagnostics.Trace.TraceInformation("Gonna put it into XML: " + item.ToString()); }
);
}
问题1:在订户1和订户2我得到不同的结果,但我希望他们都收到相同的结果。
问题2:从我添加第二个订阅者的时间点开始,他们两个都继续收到相同的结果。
因为这是安排在同一个线程上,所以没有区别。 (1)将在(2)开始之前完成。 – Asti 2012-08-14 17:32:05
小的一点,它可能只发生,因为你从一个更复杂的现实世界的例子简化,但 “从Enumerable.Range(0,maxValue)sinlgeInt选择sinlgeInt” 可以替换为 “Enumerable.Range(0 ,maxValue)“ – 2013-02-06 15:47:32