我试图在计时器上观察其处理程序比间隔长。
为了做到这一点,我想安排对某种线程池、任务池或其他东西的观察。
我尝试了线程池、任务池和newthread,但没有一个起作用。
有谁知道该怎么做?
例子:
var disposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromMilliseconds(100)).ObserveOn(Scheduler.NewThread).
Subscribe(x =>
{
count++;
Thread.Sleep(TimeSpan.FromMilliseconds(1000));
});
Thread.Sleep(TimeSpan.FromSeconds(5));
disposable.Dispose();
if (count > 10 )
{
//hurray...
}
您所要求的是一个坏主意,因为您最终会耗尽可用资源(因为创建线程的速率>线程完成速率)。相反,为什么不在前一个项目完成后安排一个新项目呢?
在您的具体示例中,您需要将 IScheduler 传递给 Observable.Timer,而不是尝试使用 ObserveOn。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)