示例#1
0
        private void DisconnectFromWebSocket()
        {
            Monitor.Stop();

            var task = new SocketDisconnectTask();

            task.Completed += OnDisconnected;
            Socket.QueueDisconnect(task);
        }
示例#2
0
        public virtual void Disconnect(Object state)
        {
            if (!disconnecting)
            {
                disconnecting = true;

                Monitor.Stop();

                var task = new SocketDisconnectTask {
                    UserToken = state
                };

                task.Completed += OnDisconnected;
                Socket.QueueDisconnect(task);
            }
        }
示例#3
0
 public void QueueDisconnect(SocketDisconnectTask task)
 {
     lock (discQueue) discQueue.Enqueue(task);
 }
示例#4
0
 public static void QueueDisconnect(this Socket socket, SocketDisconnectTask task)
 {
     task.Socket    = socket ?? throw new ArgumentNullException("socket", "socket cannot be null");
     task.Exception = null;
     IO.QueueDisconnect(task);
 }