小编Ran*_*tom的帖子

C#线程任务 - 无法从任务数组中获取返回值

我试图从我的任务中获取返回数据,如果我使用单个var,它可以正常工作,但是当我使用数组或arraylist时,我在任务对象的可用属性方法中看不到RESULT的接口.

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());
}
Run Code Online (Sandbox Code Playgroud)

正如你从代码中看到的那样,如果我把任务放回一个数组并输入任务[1] .Result,它不会暴露'结果',如果我访问任务然后我可以得到它.

我确信我做的事情很傻,所以任何帮助都会很好.

干杯.

保罗.


这是完整的代码:

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; …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task

4
推荐指数
1
解决办法
6721
查看次数

标签 统计

c# ×1

multithreading ×1

task ×1