public void Dispose()
            {
                if (dispatcher == null)
                {
                    return;
                }
                var d = dispatcher;

                dispatcher = null;
                d.count--;
                d.Run();
            }
 public Rental(RentalDispatcher dispatcher)
 {
     this.dispatcher = dispatcher;
     dispatcher.count++;
 }
 public Subscription(IObserver <IDisposable> observer, RentalDispatcher dispatcher)
 {
     Observer = observer;
     node     = dispatcher.pendingList.AddLast(this);
     dispatcher.Run();
 }