Bal*_*ala 4 c# asp.net asp.net-mvc multithreading
我需要您关于在 ASP.NET MVC 异步控制器操作中使用的建议Task.Run()。目前,我们有一个耗时的后端 SP,当用户单击“批准”时需要几分钟才能执行。用户只需要批准,不需要等到后端执行完成,所以我们Task.Run在这里使用,如下面的代码所示。
早些时候,这是由ThreadPool.QueueUserWorkItem()so 在后台完成的。现在,我们正在将此应用程序迁移到 ASP.Net MVC 5.0。
我们对此进行了测试,一切正常,但我们需要确保这是否不会在将来产生任何问题。请指教。
public async Task<ActionResult> ApprovePayments(int Id)
{
await (db.PaymentApprove(Id, User == null ? "" : User.Identity.Name));
Task.Run(() => {
DBModel dbReport = new DBModel();
dbReport.PaymentReportCreate(Id);
dbReport.Dispose();
});
SetUnapprovedPaymentsViewBag();
return View("PendingPayments");
}
Run Code Online (Sandbox Code Playgroud)