cacheitemremovedcallback потока HttpRuntime.Cache безопасен? - PullRequest
3 голосов
/ 10 ноября 2010

Я использую HttpRuntime.Cache.Insert для вставки данных в кеш.у меня есть функция 'onremove' в качестве кеша: удалено (после 15 минут) кеша он выпускает данные в кеш и вызывает 'onremove', которые снова вставляют данные в кеш.

каждый раз, когда я хочу использоватьданные в кеше я проверяю, что данные там в первую очередь:

if (HttpRuntime.Cache[CACHE_DATA_TABLE] == null)
            { // load data into cache again}

что произойдет, если я проверю, что данные находятся в кеше и есть, но как только я захочу их использоватьистекает?поэтому, когда я вызываю:

DATADT = (DataTable)HttpRuntime.Cache[CACHE_DATA_TABLE]

Ожидает ли HttpRuntime.Cache до вызова onremove и завершает загрузку данных обратно в кэш, прежде чем извлечь их?

1 Ответ

1 голос
/ 18 апреля 2011

Вместо этого следует использовать CacheItemUpdateCallback делегат.

Это позволяет вам выполнить желаемое действие до , когда элемент собирается быть удаленным.

См: MSDN для метода Cache.Insert (String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

...