私は勝つ形でリアクティブフレームワークを試しています。
IObservable<IEvent<MouseEventArgs>> mouseMoves = Observable.FromEvent<MouseEventArgs>(this, "MouseMove");
IObservable<IEvent<MouseEventArgs>> mouseDowns = Observable.FromEvent<MouseEventArgs>(this, "MouseDown");
IObservable<IEvent<MouseEventArgs>> mouseUps = Observable.FromEvent<MouseEventArgs>(this, "MouseUp");
var pointChanges = mouseMoves.Zip(mouseMoves.Skip(1), (prev, post) => new { Prev = prev, Post = post });
var mouseDrags = from d in mouseDowns
from p in pointChanges.TakeUntil(mouseUps)
select p;
mouseDrags をフィルター処理したいのですが、MouseDowns が必要になってから 1 秒以上経過した MouseUps のみが必要です。どのように?