如何在asp net mvc中同时运行两个函数而不会相互停顿

时间:2018-05-12 10:03:05

标签: c# asp.net asp.net-mvc

我正在使用SMS web service panel。在controller action HttpPost中,我调用了一种发送短信的方法。我想同时运行此功能,但我不想使用async thread。因为第一种方法是暂停。发送短信并不重要,如果无法连接短信网络服务,我不想暂停主要操作。我怎样才能同时运行这两种方法?

[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult ServicesRes(FormCollection collection)
{

    .
    .
    .

    sendSMS();

    ....

    return Json(result, JsonRequestBehavior.AllowGet);


}

[UPDATE]
我试过异步但不行
主要行动:

[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult ServicesRes(FormCollection collection)
{

    .
    .
    .

    await sendSMS();

    ....

    return Json(result, JsonRequestBehavior.AllowGet);


}


//发送短信

private async Task sendSMS()
{
      ...
      await Task.FromResult(0);
}

1 个答案:

答案 0 :(得分:3)

你需要在这里使用一种异步编程,例如这段代码运行一个线程而不会阻止当前执行。

System.Threading.Tasks.Task task = new Task(()=>
            {
                sendSMS();
            });
            task.Start();

在c#中你也可以使你的sendSMS异步。例如像这样

 public async Task sendSMS()
        {
            return;
        }