void DisposeOldApps() { List <DemoAppRegistryEntry> appEntries = AppDictionary.Values.ToList(); DateTime timeLowerBoundary = DateTime.UtcNow.Subtract(AppDisposeTimeout); foreach (DemoAppRegistryEntry appEntry in appEntries) { if (appEntry.LastAccessTime <= timeLowerBoundary) { DemoAppRegistryEntry removedEntry; AppDictionary.TryRemove(appEntry.DemoApp.Id, out removedEntry); appEntry.DemoApp.Dispose(); } } }