【发布时间】:2014-01-16 14:19:40
【问题描述】:
在 Asp.Net MVC 项目中,我有一个异步控制器,我还有一个任务类型的动作来实现异步功能。
我有以下代码,
Action startMethod = delegate() { CreateUserFunctionality(user.UserID); };
return Task.Factory.StartNew(startMethod).ContinueWith(
t =>
{
return (ActionResult)RedirectToAction("Profile", "UserProfile");
});
我也有,CreateUserFunctionality as
public void CreateUserFunctionality(int UsrId)
{
if (UsrId !=0)
{
_userService.NewFunctionality(UsrId);
}
}
我希望该函数将启动工作,CreateUserFunctionality 并为我返回用ContinueWith 函数编写的视图。但是在我的情况下, continuewith 部分总是等待CreateUserFunctionality 完成。我的目标是立即返回视图,而不是等待 CreateUserFunctionality 完成,因为它应该在后台继续。请让我找出我在这里缺少的东西。
【问题讨论】:
-
这与 async-await 有什么关系?
-
您知道
CreateUserFunctionality可能永远无法正确完成吗?您将如何从错误中恢复?
标签: c# asp.net asp.net-mvc asynchronous async-await