我试图从我的任务中获取返回数据,它工作正常,如果我使用单个变量,但是当我使用数组或列表时,我看不到任务对象的可用属性方法中RESULT的接口。C#线程任务 - 无法从任务数组获取返回值
var task = Task<BookingListResponse>
.Factory.StartNew(() => GetServicesFromApi(sc),
TaskCreationOptions.LongRunning);
tasks.Add(task);
try
{
// Wait for all the tasks to finish.
Task.WaitAll(tasks.ToArray());
}
,你可以从代码中看到,如果我把任务返回到一个数组和类型的任务[1]。结果,它不公开“结果”,如果我访问的任务的话,我可以得到它。
我相信我做的事很傻,所以任何帮助都会很好。
欢呼声。
Paul。
这里是全码:
List<Task> tasks = new List<Task>();
// loop schemes and only call DISTINCT transit api URL's
foreach (Scheme scheme in schemes)
{
if (url.ContainsKey(scheme.Url))
continue;
url.Add(scheme.Url, 0); // add url.
var sc = new ServiceCriteria();
sc.Url = scheme.Url;
sc.CapacityRequirement = capacityRequirement;
sc.DropOffLocation = dropOffLocation;
sc.PickUpLocation = pickUpLocation;
sc.PickUp = pickup;
sc.TravelTime = travelTime;
// Fire off thread for each method call.
//tasks.Add(Task<BookingListResponse>.Factory.StartNew(apiAttributes =>
// GetServicesFromApi(sc), TaskCreationOptions.LongRunning));
var task = Task<BookingListResponse>
.Factory.StartNew(() => GetServicesFromApi(sc),
TaskCreationOptions.LongRunning);
tasks.Add(task);
}
try
{
// Wait for all the tasks to finish.
Task.WaitAll(tasks.ToArray());
var result = tasks[0].Result;
}
结果选项不显示。
欢呼声。
我们可以”你真的看不到,你没有粘贴所有相关的代码。 1)缺少“任务”声明。 2)你尝试阅读的结果也是缺失的。 – 2010-12-06 13:22:46
`tasks`的定义在哪里?你是否结束了一个`Task`而不是`Task`数组? –
2010-12-06 13:24:13