public virtual void Disconnect() { lock (this.sync) if (Status != ProviderStatus.Disconnected) OnDisconnect(); }