protected override void Dispose(bool disposing)
 {
     using (_lock.UseWriteLock())
     {
         _subscriptions.OnCompleted();
         _allStream.Clear();
         _streams.Clear();
     }
 }
 protected override void Dispose(bool disposing)
 {
     _lock.EnterWriteLock();
     try
     {
         _subscriptions.OnCompleted();
         _allStream.Clear();
         _streams.Clear();
         _isDisposed = true;
     }
     finally
     {
         _lock.ExitWriteLock();
     }
 }