Я пытаюсь заставить сайт ASP.NET предварительно загружать большое количество объектов в кеш при запуске.Для создания каждого объекта требуется 2-10 секунд, что означает, что загрузка 1200+ объектов последовательно может занять до 40 минут.
Я, очевидно, не хочу, чтобы сайт загружался за 40 минут, поэтому простопридерживаться процедуры предварительной загрузки в Application_Start на самом деле не вариант.И я не могу переместить его вне контекста веб-приложения (то есть службы Windows или внешнего процесса), потому что мне нужен доступ к кешу.В идеале эта задача должна выполняться асинхронно, а сайт тем временем будет заниматься своими делами.Коллега предложил использовать класс BackgroundWorker для создания новой темы, что звучит как довольно хорошее решение.Однако, насколько я понимаю, этот конкретный класс действительно предназначен не для ASP.NET, а для WinForms.Я обеспокоен тем, что поток может быть прерван до его завершения.
- Безопасно ли использовать класс BackgroundWorker в приложениях ASP.NET?
- Какую другую альтернативу мне нужно решить?эта проблема?
ОБНОВЛЕНИЕ:
Я посмотрю в Windows AppFabric для лучшего кэширования, которое я могу загрузить из-за пределов веб-приложения.Однако до тех пор я должен идти дальше и использовать ASP.NET Cache и класс BackgroundWorker.Это не работает, и я задал новый вопрос, Загрузка объектов в кеш из нового потока .