private void Dispose(bool disposing) { if (!mIsDisposed) { if (disposing) { StopFulfillingFiveYearPlanAsync() .Wait(); mEngine?.Dispose(); mEngine = null; mAppMetricsMonitor = null; mDbAssetFactory = null; IDisposable disposableAppMetricsMonitor = mAppMetricsMonitor as IDisposable; if (disposableAppMetricsMonitor != null) { disposableAppMetricsMonitor.Dispose(); } } mIsDisposed = true; } }