Асинхронность
Используйте async/await для операций ввода-вывода. Передавайте CancellationToken и не блокируйте поток без необходимости.
ASYNC / AWAITНебольшая коллекция заметок о современном C#, асинхронности, архитектуре и инструментах платформы .NET.
Исследовать темы ↗Небольшие практики, которые делают код надёжнее и удобнее в сопровождении.
Используйте async/await для операций ввода-вывода. Передавайте CancellationToken и не блокируйте поток без необходимости.
ASYNC / AWAITRecords и неизменяемые структуры помогают выражать смысл данных и уменьшать число побочных эффектов.
RECORDSLINQ позволяет писать выразительные запросы. Следите за отложенным выполнением и лишними перечислениями.
LINQASP.NET Core предоставляет маршрутизацию, middleware, внедрение зависимостей и инструменты наблюдаемости.
ASP.NET COREАсинхронный HTTP-запрос с поддержкой отмены и проверкой результата.
public static async Task<string> GetContentAsync(
HttpClient client,
string url,
CancellationToken cancellationToken)
{
using var response = await client.GetAsync(
url, cancellationToken);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync(
cancellationToken);
}Хорошие имена и небольшие функции полезнее хитроумных сокращений.
Явные контракты, обработка ошибок и тесты помогают избежать сюрпризов.
Оптимизируйте узкие места по результатам профилирования, а не догадок.