protected void Dispose(Boolean itIsSafeToAlsoFreeManagedObjects) { //Free managed resources too, but only if I'm being called from Dispose //(If I'm being called from Finalize then the objects might not exist anymore if (!itIsSafeToAlsoFreeManagedObjects) { return; } if (MemoryController == null) { return; } MemoryController.Dispose(); MemoryController = null; }