C# 不包含';当';MVC4.NETFramework 4.0

C# 不包含';当';MVC4.NETFramework 4.0,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我已经安装了.Net Framework 4.0,我的代码是: public async Task<PartialViewResult> Search(string searchKey) { var tasks = new Task[3]; int i = 0; SearchModel viewModel = new SearchModel(); viewModel.SearchKey = searchKey;

我已经安装了.Net Framework 4.0,我的代码是:

public async Task<PartialViewResult> Search(string searchKey)
{
        var tasks = new Task[3];
        int i = 0;

        SearchModel viewModel = new SearchModel();
        viewModel.SearchKey = searchKey;

        List<Task> TaskList = GetSeachResult(searchKey, viewModel);

        foreach(Task tsk in TaskList)
        {
             tasks[i] = tsk;
             i++;
        }

        await Task.WhenAll(tasks);

        return PartialView("ResultView", viewModel);
}
公共异步任务搜索(字符串搜索键)
{
var任务=新任务[3];
int i=0;
SearchModel viewModel=新的SearchModel();
viewModel.SearchKey=SearchKey;
List TaskList=GetSeachResult(searchKey,viewModel);
foreach(任务列表中的任务tsk)
{
任务[i]=tsk;
i++;
}
等待任务。何时(任务);
返回PartialView(“结果视图”,viewModel);
}
如何解决此问题?

使用“Microsoft Async”nuget软件包,您必须使用
TaskEx.WhenAll
而不是
Task.WhenAll


他们在名为
TaskEx
的全新类中添加了它,因为在不修改源代码的情况下,无法向类型添加静态方法。从.Net 4.5开始,您可以使用
Task.whalll
并完全删除“Microsoft Async”nuget包。

随.Net Framework 4.5一起添加。你有没有考虑升级你的.NET版本?是的,我知道。我需要知道如何使用.NETFramework 4.0中的所有内容。那么我怎么才能删除微软异步软件包?@ Zehra你不想在需要的时候删除它(因为你使用.NET 4而不是4.5)事实上你是对的。但是我需要使用TimeAln()Sriram@Zehra就是这样。使用
TaskEx.WhenAll
而不是
Task.WhenAll
。我这样做了,但错误1当前上下文中不存在名称“TaskEx”