Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Производительность: предпочитайте кэшировать сами задачи, нежели их данныеНесколько капитанский совет получился. Я с трудом представляю себе метод, который кэширует данные, но при этом возвращает задачи. Он что, возвращает только уже выполненные задачи? Хотелось бы увидеть работающий пример плохого и неправильного кода.
Производительность: понимайте, как await сохраняет состояниеНе может. Поля объекта, относящиеся к выходящим из области видимости переменным, обNULLяются автоматически.
Замечание 1. Если вы декларируете переменную, она сохранится в объекте, хранящем состояние. Это может привести к тому, что объекты будут оставаться в памяти дольше, чем вы бы могли ожидать.
Замечание 2. Но если вы не станете декларировать переменную, а использовать значение Async вызова вместе с await, переменная попадёт во внутренний стек:
private object <>t__stack;
А если использует, то вычисленные значения попадают не в локальную переменную метода (или что вы имели в виду под «полем»), а в стек стейт-машины в его поле
Предпочитайте async/await вместо Task
Используйте async /await только для тех мест, которые могут длиться «долго»
Использование async и await в C# — лучшие практики