| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | using System;using System.Drawing;using System.Reactive.Linq;using System.Windows.Forms;namespace RxMouseServer{    partial class Program    {        [STAThread]        static void Main(string[] args)        {            Console.WriteLine("Server");            int port;            ParseArgs(args, out port);            var observer = Remoting(port);            var frm = new Form();            frm.Load += (o, e) =>            {                var g = frm.CreateGraphics();                var mme = (from mm in Observable.FromEventPattern<MouseEventArgs>(frm, "MouseMove")                           select mm.EventArgs.Location)                          .DistinctUntilChanged()                          .Do(pt =>                          {                              g.DrawEllipse(Pens.Red, pt.X, pt.Y, 1, 1);                          });                mme.Subscribe(observer);            };            Application.Run(frm);        }        static void ParseArgs(string[] args, out int port)        {            port = 9090;            if (args.Length == 1)            {                port = int.Parse(args[0]);            }        }    }}
 |