Как вернуть данные из задачи потоковой передачи

В настоящее время я пытаюсь использовать задачу .net для запуска длинного метода. Мне нужно иметь возможность возвращать данные из задачи. Я хотел бы вызывать этот метод несколько раз при каждом запуске его в новой задаче. Однако при возврате данных с использованием свойства Task.Result каждая задача ожидает завершения.

Например, в настоящее время, если сделать что-то вроде этого:

public void RunTask()
{
   var task = Task.Factory.StartNew(() => 
   { 
      return LongMethod() 
   });  

   Console.WriteLine(task.Result);
}

и вызвать его несколько раз, каждый раз занимая разное количество времени, он ждет завершения каждой Задачи перед выполнением следующей.

Можно ли вызвать мой метод RunTask несколько раз, каждый раз возвращая результат, не дожидаясь завершения каждой задачи по порядку?

5
задан Web 21 March 2011 в 16:21
поделиться