【发布时间】:2018-09-24 00:21:43
【问题描述】:
预计都在.NET Core 2.0控制台应用的主线程上执行,所以输出被阻塞10秒:
static void Main(string[] args)
{
WriteLine($"We are on {Thread.CurrentThread.ManagedThreadId}");
var subject = new Subject<long>();
var subscription = subject.Subscribe(
i => WriteLine($"tick on {Thread.CurrentThread.ManagedThreadId}"));
var timer = Observable.Interval(TimeSpan.FromSeconds(1))
.SubscribeOn(Scheduler.CurrentThread)
.Subscribe(i => subject.OnNext(i));
Thread.Sleep(10000);
}
但情况并非如此 - 每隔一秒就会有一个新行进入控制台,由随机线程调度:
We are on 1 tick on 4 tick on 5 tick on 4 tick on 4 tick on 4 tick on 4 tick on 4 tick on 4 tick on 5
我做错了什么?
【问题讨论】:
标签: c# .net-core system.reactive