Теперь, когда я пишу этот ответ, сеанс недоступен в потоке, отличном от того, который обрабатывает текущий запрос.
Если нет никакого запроса, Текущее свойство HttpContext равно нулю.
Но если в этом фоновом потоке вы используете сеанс после получения запроса, он доступен, пока запрос активен и еще не завершен.
Там может быть лучшее решение для вашего требования.
В любом случае, если вам необходимо использовать фоновый поток, доступ к сеансу - не единственная проблема, с которой вы сталкиваетесь. Вы должны учитывать ситуации с ошибками, которые могут возникнуть у вас, и быть осторожным, чтобы ваше приложение не перешло в неподходящее состояние. Например, IIS может перезапустить AppDomain (хотя HostingEnvironment.RegisterObject может почти обработать этот)