当我将 Reactive Extensions (Rx) 与 linq 过滤器一起使用时,幕后会发生什么?
这是,
var move = Observable.FromEventPattern<MouseEventArgs>(frm, "MouseMove");
IObservable<System.Drawing.Point> points = from evt in move
select evt.EventArgs.Location;
var overfirstbisector = from pos in points
where pos.X == pos.Y
select pos;
var movesub = overfirstbisector.Subscribe(pos => Console.WriteLine("mouse at " + pos));
从此更有效率?
private void MouseMove(object sender, EventArgs args)
{
if (args.Location.X == args.LocationY)
Console.WriteLine("mouse at " + args.Location);
}
我不谈论过滤逻辑本身,而是谈论方法的事件行为。在 Rx 中,事件是否以与常规事件完全相同的方式引发,但使用了 Warapper 或者引擎盖下有什么特别的东西?