コード例 #1
0
 public void UpdateUserStatus(object o, AcceptDisconnectedUserEventArgs e)
 {
     if (activeUser != null)
     {
         activeUser(o, e.GetStatusUserEventArgs);
     }
 }
コード例 #2
0
        public void KeepListening()
        {
            MessegesManager msgManager;
            Messege         msg;

            acceptDisconnected += AcceptDisconnected;

            try
            {
                while (this.GetUser.UserStatus == Status.connected)
                {
                    msg = (Messege)bf.Deserialize(tcpStream);
                    ThreadPool.QueueUserWorkItem(o =>
                    {
                        lock (locker)
                        {
                            msgManager = new MessegesManager(this, msg);
                            if (msgManager.GetStatusUserEventArgs != null)
                            {
                                acceptDisconnectedUser = new AcceptDisconnectedUserEventArgs(msgManager.GetStatusUserEventArgs);
                                if (acceptDisconnected != null)
                                {
                                    acceptDisconnected(this, acceptDisconnectedUser);
                                }
                            }
                            Monitor.PulseAll(locker);
                        }
                    });
                }
                tcpStream.Dispose();
                ActiveUsers.Remove(this);
            }
            catch
            {
                tcpStream.Dispose();
                ActiveUsers.Remove(this);
            }
        }
コード例 #3
0
 public void AcceptDisconnected(object o, AcceptDisconnectedUserEventArgs e)
 {
     homeServer.UpdateUserStatus(o, e);
     ActiveUsers.Remove(this);
 }