对System.Reactive中的变化做出反应



new to System。响应式,但是就我理解的,我们可以订阅任何可观察集合,如果那里发生了什么,我就会得到通知。

但是,当我正在寻找一个框架,帮助我调度任务,这将是巨大的,只是有一个可观察的集合,已经充满了数据,过滤他们的时间,并使他们提出下一个事件,只要一些条件是匹配的。

假设我们有一个类

Public Class Appointment
    Property Notification As DateTime
End Class

然后我们有一个List<IObservable>,我们订阅它,然后我们指定像where这样的东西但不是当添加了新的东西时,而是当有匹配的东西时。在本例中,当前日期时间Now()和任何约会

src.WhenWhere(x => x.Notification < Now())
或者应该用一个自定义的可观察对象来完成?

你可以这样做…请注意,您必须在约会上放置一些标志,以表示通知已发送并将其添加到where子句中,否则,一旦约会时间为<DateTime。现在,它会一次又一次地发送结果。>

void Main() {
    var appointments = new List<Appointment> { 
       new Appointment { Id = 1, Notification = DateTime.Now.AddMilliseconds(4000) },
       new Appointment { Id = 2, Notification = DateTime.Now.AddMilliseconds(7000) }
    };
    var q = from t in Observable.Generate(DateTime.Now, _ => true, _ => _, _ => DateTime.Now, _ => TimeSpan.FromSeconds(1))
        from a in appointments
        where a.Notification < t
        select new { a.Id, a.Notification };
q.Dump();

}

public class Appointment {
    public int Id { get; set; }
    public DateTime Notification { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新