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

时间:2016-09-23 20:50:35

标签: c# asp.net

我见过其他非常相似的问题,但我仍然没有找到解决方案,我安装了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正在忙着处理这个威胁究竟我做错了什么?发送电子邮件需要很长时间

1 个答案:

答案 0 :(得分:0)

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

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