Держать объект в памяти в течение определенного времени (приложение C # WinForms) - PullRequest
1 голос
/ 06 октября 2010

Каков наилучший способ удерживать объект в памяти в течение ограниченного периода времени, а затем освобождать его? Например, у меня есть Dictionary<int, string>, и я хочу сохранить его только на 10 минут, а после этого утилизировать.

Как это сделать?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 06 октября 2010

Нельзя распоряжаться словарями, от них избавляется только сборщик мусора.Установка ссылки на словарь в null в событии Tick таймера, в конце концов, сделает работу.Посмотрите на класс WeakReference.

2 голосов
/ 06 октября 2010

вы можете использовать класс кэширования объектов (framework 4) в соответствии с документацией ms, которая определяется следующим образом: открытый абстрактный класс ObjectCache: IEnumerable>, IEnumerable

Класс передается System.Runtime.Caching.Чтобы использовать его, вы должны унаследовать его в конкретной реализации.

Этот объект работает так же, как приложение httpcache, так что вы можете определить, скажем, скользящее истечение и / или абсолютное время истечения также

0 голосов
/ 08 августа 2014

В .NET Framework 4.0 и более поздних версиях вы можете использовать MemoryCache - он имеет функции, аналогичные HttpCache, и вам не нужно включать корпоративную библиотеку (т. Е. Блок кэширования приложения).

Ссылка:http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx

Сборка: System.Runtime.Caching.dll

Пространство имен: System.Runtime.Caching

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...