当对象在API中处理时,Asyn进程停止

时间:2016-01-13 06:26:13

标签: c# api asynchronous interface

当我调用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;
    }

1 个答案:

答案 0 :(得分:0)

@Eraiarasu,您正在SendMailProcess中创建一个单独的线程,这就是为什么您的API调用在SendMailProcess完成之前完成。

此外,如果您尝试创建异步方法,请尝试在SaveMyData中等待SendMailProcess方法调用。同时也将SaveMyData设为async。请注意,.NET中的smtp api中有SendAsync方法。因此,您不必像在SendMailProcess中那样使用Task.Run