Asp.net ';System.Threading.Tasks.Task';不包含';结果';

Asp.net ';System.Threading.Tasks.Task';不包含';结果';,asp.net,asp.net-mvc-3,asp.net-4.0,Asp.net,Asp.net Mvc 3,Asp.net 4.0,我有一个facebook查询,如下所示 var client = new FacebookClient(accessToken); var dynamic = client.Get(connection, new { fields = "name,from,story,message,picture,comments", limit = count}); foreach (var dynPost in results.data) { posts.Add(ConvertToPost(dy

我有一个facebook查询,如下所示

var client = new FacebookClient(accessToken);
var dynamic = client.Get(connection, new { fields = "name,from,story,message,picture,comments", limit = count});
foreach (var dynPost in results.data)
{
     posts.Add(ConvertToPost(dynPost));
}
我试图通过同时向Facebook发出许多较小的请求来加快这一进程

using (profilingService.Start("Facebook calls"))
{ 
    var pullSize = 25;
    var numberOfCalls = (int)Math.Ceiling(count / (double)pullSize);

    var taskQueue = new Queue<Task>();
    for (int i = 0; i < numberOfCalls; i++)
    {
        taskQueue.Enqueue(Task.Factory.StartNew(() =>
        {
            var offset = i * pullSize;
            var client = new FacebookClient(accessToken);
            return client.Get(connection, new { fields = "name,from,story,message,picture,comments", limit = 25, offset = offset });
        }));
    }

    Task.Factory.ContinueWhenAll(
        taskQueue,
        tasks =>
        {
            //t.Result here is giving me the error
            var results = tasks.Select(t => t.Result);
            foreach (var result in results)
            {
                foreach (var dynPost in result.data)
                {
                    posts.Add(ConvertToPost(dynPost.data));
                }
            }
        });
}
使用(profilingService.Start(“Facebook呼叫”))
{ 
var-pullSize=25;
var numberOfCalls=(int)数学上限(count/(double)pullSize);
var taskQueue=新队列();
for(int i=0;i
{
var offset=i*pullSize;
var client=新的FacebookClient(accessToken);
返回client.Get(connection,new{fields=“name,from,story,message,picture,comments”,limit=25,offset=offset});
}));
}
Task.Factory.continuewhalll(
任务队列,
任务=>
{
//t、 这里的结果给出了错误
var results=tasks.Select(t=>t.Result);
foreach(结果中的var结果)
{
foreach(结果数据中的var dynPost)
{
添加(ConvertToPost(dynPost.data));
}
}
});
}
首先,我在
var results=tasks.Select上得到一个错误(t=>t.Result)

错误361“System.Threading.Tasks.Task”不包含定义 对于“Result”且没有扩展方法“Result”接受第一个 找不到类型为“System.Threading.Tasks.Task”的参数(是否为 缺少使用指令或程序集引用?)

t属于
任务类型


另外,我对这种并行编码没有太多经验,有什么我做得不对或应该以不同的方式做的吗?

问题在于
队列<代码>任务
本身没有
结果
属性。但是,
Task
具有类型为
Foo
Result
属性。(我不知道
client.Get(…)
返回什么,现在我们称之为
Foo

var taskQueue = new Queue<Task<Foo>>();
Task.Factory.ContinueWhenAll(
    taskQueue.ToArray(),
    tasks =>
    {
        var results = tasks.Select(t => t.Result);
        foreach (var result in results)
        {
            ...
        }
    });
}