當我使用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中,事件的發生與普通事件的發生方式完全相同,但使用包裝器或引擎蓋下有特殊的東西?