[c#]ASP.NET Web Api SendAsync 保持服务器等

标签: Asp.net C#
发布时间: 2017/2/25 3:16:23
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我见过其他非常相似的问题,但我还没找到一个解决办法,我有邮政 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:

如果你不想要稍候将完成重金属,在新线程中执行代码。

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