private void Server_ClientAccepted(object sender, Control.Network.Server.ServerEventArgs e) { Task.Factory.StartNew(delegate() { e.Client.IsAttachedChanged += Client_IsAttachedChanged; var name = ""; e.Client.Dispatcher.Invoke((Action) delegate() { name = e.Client.DisplayName; }); var client = new Extensibility.MuboxClientBridge( (key) => { e.Client.Dispatch(key); }, (me) => { e.Client.Dispatch(new Model.Input.MouseInput { // MouseData Flags = me.Flags, IsAbsolute = me.IsAbsolute, Time = me.Time, WM = me.WM, Point = new System.Windows.Point { X = me.X, Y = me.Y, }, }); }) { Name = name, }; e.Client.DisplayNameChanged += (dnc_s, dnc_e) => { client.Name = (dnc_s as Mubox.Model.Client.ClientBase).DisplayName; }; lock (_clients) { _clients.Add(client); } _extensions.Values.ToList() .ForEach(ext => { ext.Bridge.Clients.Add(client); }); }, TaskCreationOptions.PreferFairness); }
private void Server_ClientAccepted(object sender, Control.Network.Server.ServerEventArgs e) { Task.Factory.StartNew(delegate() { e.Client.IsAttachedChanged += Client_IsAttachedChanged; var name = ""; e.Client.Dispatcher.Invoke((Action)delegate() { name = e.Client.DisplayName; }); var client = new Extensibility.MuboxClientBridge( (key) => { e.Client.Dispatch(key); }, (me) => { e.Client.Dispatch(new Model.Input.MouseInput { // MouseData Flags = me.Flags, IsAbsolute = me.IsAbsolute, Time = me.Time, WM = me.WM, Point = new System.Windows.Point { X = me.X, Y = me.Y, }, }); }) { Name = name, }; e.Client.DisplayNameChanged += (dnc_s, dnc_e) => { client.Name = (dnc_s as Mubox.Model.Client.ClientBase).DisplayName; }; lock (_clients) { _clients.Add(client); } _extensions.Values.ToList() .ForEach(ext => { ext.Bridge.Clients.Add(client); }); }, TaskCreationOptions.PreferFairness); }