Это хороший способ сделать метод API асинхронным?
У меня есть API, который создает пользователя и отправляет код подтверждения на электронную почту пользователя. Токен JWT генерируется после отправки электронной почты на электронную почту пользователя, поэтому я сделал метод асинхронным, а также API. Итак, это хороший подход или, пожалуйста, укажите, какой подход лучше всего подходит для обработки такого типа запроса.
Я использую работу с фреймами сущностей, поэтому проблема в том, что sendEmail - это другой метод. Если я не делаю это асинхронным, он дает «Не удается получить доступ к удаленному экземпляру контекста».





Использование асинхронного кода может во многом зависеть от вашего приложения и конкретных требований.
Асинхронный запуск кода может увеличить нагрузку из-за переключения потоков, но такой подход также может ускорить цикл запроса-ответа и позволить вашему приложению обрабатывать больше запросов одновременно.
Распространенным заблуждением является то, что использование ключевого слова async неизменно приводит к более быстрому получению ответов. Это верно только в том случае, если у вас есть возможность выполнять несколько вызовов ввода-вывода одновременно. В таком сценарии общее время выполнения будет примерно равно продолжительности самой длинной одиночной операции. Однако маловероятно, что одна асинхронная операция превзойдет синхронную операцию.
Еще одна причина для создания асинхронных методов — освободить потоки для обслуживания других запросов, пока обрабатывается текущий вызов ввода-вывода. Это больше связано с лучшим использованием ресурсов, чем с чистой производительностью.
Таким образом, если ваши проблемы связаны с оптимизацией использования ЦП/потоков или если у вас есть возможность выполнять несколько вызовов одновременно, то внедрение асинхронности может быть полезным. С другой стороны, если эти условия не выполняются, использование асинхронного программирования может не иметь существенных преимуществ перед синхронным программированием.
Говоря о проблеме, связанной с удалением контекста, предоставьте более подробную информацию о вашем коде.
Адалят Назиров, спасибо за краткое объяснение, о контексте БД, я вызываю репозиторий формы внешнего метода, куда вводится контекст БД. Если я не сделаю внешний метод асинхронным ожиданием, он выдаст «Не удается получить доступ к удаленному экземпляру контекста». Но если я сделаю его асинхронным ожиданием, то он отлично работает. Поскольку внешний метод является асинхронным ожиданием, я должен сделать метод репозитория, а также метод контроллера API асинхронным ожиданием. Вот почему у меня есть опасения, хороший ли это подход или нет.
@MuhammadBilal исключение, которое вы получаете, выглядит как ошибка. Текущий вопрос закрыт модератором, пожалуйста, создайте новый вопрос по проблеме, предоставив как можно больше подробностей, включая фрагменты кода.
Закрыть -> Требуется больше внимания. Без дополнительной информации просто невозможно ответить. Использование имеет значение. В итоге мне пришлось предоставить собственный HTTP-клиент, потому что Microsoft не предоставила полностью синхронный API. (Да, есть вызов синхронизации. Он не синхронизируется полностью и может зайти в тупик, если над вами есть
await.)