Example #1
0
        public void Dispose()
        {
            workContext.StopWork();
            foreach (var value in ExtensionsState.Values.OfType <IDisposable>())
            {
                value.Dispose();
            }
            TransactionalStorage.Dispose();
            IndexStorage.Dispose();

            if (tasksBackgroundTask != null)
            {
                tasksBackgroundTask.Wait();
            }
            if (indexingBackgroundTask != null)
            {
                indexingBackgroundTask.Wait();
            }
            if (reducingBackgroundTask != null)
            {
                reducingBackgroundTask.Wait();
            }

            var disposable = backgroundTaskScheduler as IDisposable;

            if (disposable != null)
            {
                disposable.Dispose();
            }
        }