private void DisconnectFromWebSocket() { Monitor.Stop(); var task = new SocketDisconnectTask(); task.Completed += OnDisconnected; Socket.QueueDisconnect(task); }
public virtual void Disconnect(Object state) { if (!disconnecting) { disconnecting = true; Monitor.Stop(); var task = new SocketDisconnectTask { UserToken = state }; task.Completed += OnDisconnected; Socket.QueueDisconnect(task); } }
public void QueueDisconnect(SocketDisconnectTask task) { lock (discQueue) discQueue.Enqueue(task); }
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); }