Ну, это зависит от того, как у вас настроен IIS. Если у вас менее 100 рабочих потоков (скажем, 50), то «тяжелая работа» выполняется 50 раз, нанося вред вашему серверу, а затем оставшиеся 50 запросов будут обслуживаться из кэша.
Но нет, в результате кешированного действия не существует «механизма блокировки»; это было бы контрпродуктивно, по большей части.
Редактировать : Я верю, что это правда, но тесты Ника говорят иначе, и у меня нет времени сейчас проверять. Попробуй сам! Остальная часть ответа не зависит от вышесказанного, и я думаю, что это более важно.
В целом, однако, ни один веб-запрос, кешированный или иным образом, не должен занимать 10 секунд для возврата. Если бы я был на вашем месте, я бы посмотрел на то, как предварительно вычислить сложную часть запроса. Вы все еще можете кэшировать результат действия, если хотите кэшировать HTML, но похоже, что ваша проблема несколько больше.
Вы могли бы также захотеть рассмотреть асинхронные контроллеры . Наконец, обратите внимание, что, хотя IIS и ASP.NET MVC не будут блокировать эти сложные вычисления, вы можете это сделать. Если вы используете асинхронные контроллеры в сочетании с блокировкой вычислений, то вы получите эффективное поведение, о котором вы просили. Я не могу точно сказать, является ли это лучшим решением, не зная больше о том, что вы делаете.