У меня есть веб-API поверх net core 3.0, и мой API использует почтовую DLL, в которой я выполняю некоторые операции.
Контроллер веб-API:
_mailService.SendEmail();
Почтовая DLL:
public void SendEmail()
{
Console.Writeline("Registering at database");
RegisterAtDatabase(); //Do some stuff at database
SendMailToUser(); //Send mail to user. His operation takes about 1 minute
Console.Writeline("End mail proccess");
}
private void SendMailToUser()
{
Console.Writeline("Creating and sending mail");
//Here some stuff to send the mail. It takes about 1 minute
Console.Writeline("Mail sended");
}
Я хочу вызвать _mailService.SendEmail(), а не ждать завершения всего процесса. Я хочу писать в базу данных, а не ждать процесса отправки электронной почты. Таким образом, вывод консоли должен быть....
Registering at database
Creating and sending mail
End mail proccess
//After 1 minute
Mail sended
Возможно ли это с помощью Task Async и ожидания?
Я хочу вернуть управление API во время отправки электронной почты.
Спасибо
Нельзя ли сделать с другим подходом?