当我调用web api时,asyn方法启动过程。完成API过程后,asyn进程也停止了。这是我的示例代码段。请为此提供任何解决方案。
private readonly ITestService testservice;
public TestController(ITestService test)
{
this.testservice=test;
}
[Route("Sample/SaveMyData")]
[HttpPost]
public IHttpActionResult SaveMyData(MyInfo info)
{
MyInfo inf = new MyInfo ();
inf = testservice.SaveMyInformation(info);
SendMailProcess(inf)
return Ok<MyInfo>(inf);
}
private async Task<bool> SendMailProcess(MyInfo emailInfo)
{
await Task.Run(()=> this.testservice.SendMail(emailInfo));
return true;
}
答案 0 :(得分:0)
@Eraiarasu,您正在SendMailProcess中创建一个单独的线程,这就是为什么您的API调用在SendMailProcess完成之前完成。
此外,如果您尝试创建异步方法,请尝试在SaveMyData中等待SendMailProcess方法调用。同时也将SaveMyData设为async。请注意,.NET中的smtp api中有SendAsync方法。因此,您不必像在SendMailProcess中那样使用Task.Run