У меня длинный ASP-ответ (фактически действие MVC), которое я хочу отменить, если пользователь переместился. Я думаю, что это должно быть довольно просто:
if(!this.Response.IsClientConnected)
{
Response.End();
}
Однако я столкнулся с различными источниками, начиная с что этот метод медленный.
Итак, я провел собственные тесты (используя MVC mini profiler, хотя вы могли бы использовать свои собственные):
using (var step = MiniProfiler.Current.Step("Response_IsClientConnected"))
if(!this.Response.IsClientConnected)
{
Response.End();
}
Это нашло, что каждый раз, когда я называю это, он очень быстро работает: до 1 мс на моем разработчике. Это верно или неверно.
При каких обстоятельствах Response.IsClientConnected
ожидается медленным?
Мне нужно поддерживать IIS6 - будет ли Response.IsClientConnected
медленнее на этом?
Кто-нибудь знает, что он делает под обложками? На низком уровне я бы ожидал, что стек TCP/IP узнает, все ли там соединение, поэтому я ожидаю, что эта проверка будет мгновенной, но нужно ли IIS выполнять дополнительную работу для проверки?