Example #1
0
        public IDisposable Subscribe(IObserver <GCInfo> observer)
        {
            lock (syncObject)
            {
                if (!triedToStartSource)
                {
                    try
                    {
                        gcEventsSource.Start();
                    }
                    catch (Exception ex)
                    {
                        sourceStartError = ex;
                    }
                    triedToStartSource = true;
                }
            }

            if (sourceStartError != null)
            {
                ThreadPool.QueueUserWorkItem(
                    state => observer.OnError((Exception)state),
                    sourceStartError);
            }

            return(observers.Subscribe(observer));
        }
Example #2
0
        private (IObserver <int>, IDisposable) SetupObserver(IObserverCollection <int> collection)
        {
            var observer = Substitute.For <IObserver <int> >();
            var handle   = collection.Subscribe(observer);

            return(observer, handle);
        }