Когда Response.IsClientConnected работает медленно?

У меня есть длительный ASP-ответ (на самом деле действие MVC), который я хочу отменить, если пользователь ушел. Я думаю, что это должно быть довольно просто:

if(!this.Response.IsClientConnected)
{
    Response.End();
}

Однако я сталкивалсяразличные источники началочто этот метод медленный.

Поэтому я провел свои собственные тесты (используяMVC мини-профилировщик, хотя вы могли бы использовать свой собственный):

using (var step = MiniProfiler.Current.Step("Response_IsClientConnected"))
if(!this.Response.IsClientConnected)
{
    Response.End();
}

Оказалось, что каждый раз, когда я это называю, это всегда очень быстро: на моем разработчике меньше 1 мс. Это правда или нет.

При каких обстоятельствахResponse.IsClientConnected ожидается медленным?

Я должен поддержать IIS6 - будетResponse.IsClientConnected быть медленнее на этом?

Кто-нибудь знает, что он делает под одеялом? На низком уровне я ожидал бы, что стек TCP / IP будет знать, все еще ли соединение, поэтому я ожидал бы, что эта проверка будет мгновенной, но должен ли IIS выполнить некоторую дополнительную работу для проверки?

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

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