ASP.. NET Web Api SendAsync使服务器等待

本文关键字:服务器 等待 SendAsync Api NET Web ASP | 更新日期: 2023-09-27 18:08:46

我看到过其他非常类似的问题,但我仍然没有找到解决方案,我安装了Postal nuget包来处理电子邮件,并且我有一个异步发送电子邮件的web方法(我想)。基于其他示例,下面是我的代码:

[ActionName("PostEnviarCorreoReserva")]
        [HttpPost]
        public async Task<IHttpActionResult> PostEnviarCorreoReserva(
            [FromBody] ReservaEmail vermodel,
            String ver_gkey)
        {
            var ReservaId = Convert.ToInt32(vermodel.Reserva);
            CultureInfo es = new CultureInfo("es-ES");
            Thread.CurrentThread.CurrentCulture = es;
            DtContex = new DTPPublicDataContext();
            var RSPD = DtContex.res_reservas_usuario_det.First(i => i.reserva_gkey == ReservaId);
dynamic emailReserva = new Email(TipoEmail);
            emailReserva.To = RSPD.email_reserva; 
            emailReserva.CodReserva = RSPD.reserva_gkey.ToString();
            ...
            await emailReserva.SendAsync();
            return Ok();
        }

所以我仍然是一个新手,但我明白,这段代码应该异步执行,所以我可以以后执行其他操作到Web API,但直到它返回Ok响应,Web API正在忙着处理这个威胁,我到底做错了什么?发送电子邮件需要很长时间

ASP.. NET Web Api SendAsync使服务器等待

如果您不想等待,而sendout将完成,在新线程中执行代码。

new Thread(async () =>
{
    await emailReserva.SendAsync();
}).Start();