Beispiel #1
0
        public IDisposable Subscribe(TObserver observer)
        {
            lock (InternalObservers)
                InternalObservers?.Add(observer);

            return(Disposable.Create(() => InternalObservers?.Remove(observer)));
        }
Beispiel #2
0
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    lock (InternalObservers)
                    {
                        InternalObservers.Clear();
                        InternalObservers = null;
                    }
                }

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

                disposedValue = true;
            }
        }