Ejemplo n.º 1
0
 public override void Close()
 {
     lock (lckObject)
     {
         try
         {
             BaseSocket.Shutdown(SocketShutdown.Both);
         }
         catch
         {
         }
         try
         {
             BaseSocket.Dispose();
         }
         catch
         {
         }
         State = ConnectionState.Closed;
         SocketReceiveArgs.Completed -= socketArgsRecv_Completed;
         SocketSendArgs.Completed    -= socketArgsSend_Completed;
         ReceivePool.Return(SocketReceiveArgs);
         SendPool.Return(SocketSendArgs);
     }
 }
Ejemplo n.º 2
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         Disconnect(BaseSocket);
         BaseSocket.Dispose();
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Dispose current instance of the baseSocket if not null
        /// </summary>
        public void Dispose()
        {
            if (BaseSocket == null)
            {
                return;
            }
            IsRunning = false;
            lock (ConnectedClients)
            {
                foreach (var client in ConnectedClients)
                {
                    client.Dispose();
                }
            }

            ConnectedClients.Clear();
            BaseSocket.Dispose();
            BaseSocket = null;
        }
Ejemplo n.º 4
0
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // TODO: dispose managed state (managed objects).

                    SubclassDispose();

                    SocketDataReader.Dispose();
                    SocketDataWriter.Dispose();
                    BaseSocket.Dispose();
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }