Следует ли избегать ненужных директив Async Page?

1

Я заметил несколько мест на своем веб-сайте, где я говорю с сторонними ресурсами. Я видел несколько рекомендаций (например, MSDN Magazine: Asynchronous Pages в ASP.NET 2.0), что такой код должен выполняться асинхронно, хотя бы для того, чтобы избежать насыщения пула потоков. Предположим, что я ввожу несколько таких функций:

public static void LoadThirdPartyInfo(/*Arguments*/)
{
    Page page = (Page) HttpContext.Current.CurrentHandler;
    if(page.IsAsync)
    {
        page.AddOnPreRenderCompleteAsync( //...
    }
    else
    {
        //Oops...
    }
}

На данный момент я мог:
1. Удалите (или сохраните) предложение else и постарайтесь быть осторожным только для его вызова на страницах Async, возможно, добавив некоторые протоколирования, чтобы обнаружить, когда это сделано неправильно.
2. То же, что и # 1, но используйте Async="True" на новых страницах.
3. То же, что и # 1, но используйте Async="True" на всех страницах.

Я не уверен, есть ли риск ввести ненужные директивы Async. Кажется, они ничего не сломают.

Вопрос: Можно ли вводить ложные асинхронные директивы?

Примечание. Я использую.Net 4.0, но я открыт для ответов, нацеленных на.Net 4.5.

Теги:
asynchronous
.net-4.0
.net-4.5

1 ответ

2
Лучший ответ

Простое добавление Async = true к странице без активации какого-либо из кодов, связанных с асинхронным кодом, прекрасно. Это приведет к незначительному штрафу. Штраф обычно незначителен, но может быть хорошей идеей перфорировать ваш сайт снова после любых изменений, которые вы делаете, чтобы удостовериться, что ничего не изменилось.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню