public void Dispose() { ChannelFactory <T> disposable; lock (this.gate) { disposable = this.factory; this.factory = null; } Utils.DisposeBestEffort(disposable); }