Вы путаете два разных понятия. Безопасность потоков только косвенно связана с HTTP-запросами, поскольку HTTP-запрос требует использования потока. Это довольно много, хотя. HttpContext является областью запроса, поэтому в контексте одного запроса у вас не будет утечки, если вы остаетесь только в одном потоке, или все рабочие потоки выполняются в контексте этого конкретного запроса.
Когда дела идут наперекосяк, вы начинаете запускать потоки, которые работают в фоновом режиме, то есть вне конвейера запросов. В таких ситуациях HttpContext может существовать или не существовать, либо он может отличаться для фонового потока от исходного потока. Вот тут-то и наступает небезопасная нить.
Длинно и коротко, независимо от того, является ли HttpContext
поточно-ориентированным, неправильный вопрос. Вместо этого вам нужно спросить, какая работа выполняется в потоке и в каком контексте. Если вы находитесь в конвейере запросов, то HttpContext
будет эффективно поточно-ориентированным, но для этого потребуется захват всех запущенных вами потоков, что в значительной степени сводит на нет полезность использования нескольких потоков. С тем же успехом вы можете просто выполнить всю работу над исходной веткой. Обработка веб-запроса - это не то же самое, что настольное или мобильное приложение. В последнем случае вы должны оставить основной поток или поток пользовательского интерфейса свободным, поэтому выделение потоков является обязательным. Сеть не работает таким образом; все потоки являются временными, обслуживая определенный запрос и затем возвращаясь в пул.