ASP.NET Page.Cache против Page.Хранилище приложений для синхронизации данных? - PullRequest
3 голосов
/ 27 мая 2010

Обе Page.Cache и Page.Application могут хранить «глобальные» данные приложения, общие для запросов и потоков.

Как выбрать одну область хранения поверх другой, учитывая сценарии синхронизации данных в многопоточной среде ASP.NET?

Ищем лучшие практики и опытные рекомендации.

Ответы [ 2 ]

4 голосов
/ 27 мая 2010

Если данные

  • является стабильным в течение срока службы приложения
  • всегда должен быть доступен и не должен очищаться

лучше хранить в HttpApplicationState .

Если данные

  • не обязательно необходим для жизни приложения
  • изменения часто
  • при необходимости может быть очищен (например, недостаточно системной памяти)
  • может быть отброшено, если используется редко
  • должен быть признан недействительным / обновлен при некоторых условиях (правило зависимости: временной интервал, дата, временная метка файла, ...)

затем используйте Cache .

Другие важные моменты:

  • Большие объемы данных лучше хранить в Cache , тогда сервер может очистить их, если не хватает памяти.
  • Кэш безопасен для многопоточных операций. Page. Приложение необходимо блокировка .

См. Также эту статью на etutorials.org для получения более подробной информации.

0 голосов
/ 27 мая 2010

Обычно вы храните данные в Page.Application Items Collection, когда они вам нужны в рамках того же запроса. Page.Cache обычно используется в сценариях кэширования данных, когда вы хотите использовать его для нескольких запросов.

...