...

аюсь заставить сайт ASP.NET предварительно загружать большое количество объектов в кеш при запуске. Для генерации каждого объекта требуется 2-10 секунд, что означает, что загрузка 1200+ объектов последовательно может занять до 40 минут.

Я, очевидно, не хочу, чтобы сайт загружался 40 минут, поэтому просто придерживаться процедуры предварительной загрузки в Application_Start на самом деле не вариант. И я не могу переместить его вне контекста веб-приложения (то есть службы Windows или внешнего процесса), потому что мне нужен доступ к кешу. В идеале эта задача должна выполняться асинхронно, а сайт тем временем будет заниматься своими делами. Коллега предложил использоватьКласс BackgroundWorker раскрутить новую тему, которая звучит как довольно хорошее решение. Однако, насколько я понимаю, этот конкретный класс действительно предназначен не для ASP.NET, а для WinForms. Я обеспокоен тем, что поток может быть прерван до его завершения.

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

ОБНОВИТЬ:

Я посмотрю на Windows AppFabric для лучшего кэширования, которое я могу загрузить из-за пределов веб-приложения. Однако до тех пор я должен идти дальше и использовать ASP.NET Cache и класс BackgroundWorker. Это не работает, и я задал новый вопрос,Загружать объекты в кеш из нового потока.

Ответы на вопрос(4)

Ваш ответ на вопрос