Вступить в клуб →
средняявопросasync/await, многопоточность и фоновые задачи

Фоновое обновление статистики падает с ObjectDisposedException

[HttpPost]
public IActionResult Create(OrderDto dto)
{
    var order = _service.Create(dto);
    _ = Task.Run(() => _stats.RecalculateAsync(order.CustomerId)); // использует _db
    return Ok(order);
}

_stats и _db зарегистрированы как scoped. Пересчёт иногда проходит, а иногда падает с Cannot access a disposed context instance. Почему?

  • Область запроса и DbContext освобождаются после ответа
  • Task.Run запрещено вызывать в контроллерах
  • DbContext нельзя использовать в асинхронных методах
  • Статистика пересчитывается дважды одновременно

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела