private void refreshMapset() { var previousBeatmapId = mainBeatmap?.Id ?? -1; var previousBeatmapName = mainBeatmap?.Name; mainBeatmap = null; mapsetManager?.Dispose(); mapsetManager = new MapsetManager(mapsetPath, mapsetManager != null); mapsetManager.OnFileChanged += mapsetManager_OnFileChanged; if (previousBeatmapName != null) { SelectBeatmap(previousBeatmapId, previousBeatmapName); } }
protected virtual void Dispose(bool disposing) { if (!IsDisposed) { if (disposing) { // Always dispose this first to ensure updates aren't happening while the project is being disposed effectUpdateQueue.Dispose(); assetWatcher.Dispose(); MapsetManager?.Dispose(); scriptManager.Dispose(); TextureContainer.Dispose(); AudioContainer.Dispose(); } assetWatcher = null; MapsetManager = null; effectUpdateQueue = null; scriptManager = null; TextureContainer = null; AudioContainer = null; IsDisposed = true; } }