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; }
}