我见过其他非常相似的问题,但我仍然没有找到解决方案,我安装了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正在忙着处理这个威胁究竟我做错了什么?发送电子邮件需要很长时间
答案 0 :(得分:0)
如果您不想等待,而sendout将完成,请在新主题中执行代码。
new Thread(async () =>
{
await emailReserva.SendAsync();
}).Start();