Task.Factory.StartNew - ожидание и возврат результата
Как запустить пачку фоновых потоков и дождаться любой первый с возвратом результата ?
Пробовал так и ещё различным десятком способов после гугла, в том числе и без лямбды.
Task task = Task.Factory.StartNew(async () =>
{
AnalyseInfo analyseInfo = await myAnalyzer.AnalyseAsync();
_analyseInfos.Add(analyseInfo);
});
Task<AnalyseInfo> task = Task<AnalyseInfo>.Factory.StartNew(async () =>
{
return await myAnalyzer.AnalyseAsync();
});
Task<Task<AnalyseInfo>> task = Task<Task<AnalyseInfo>>.Factory.StartNew(async () =>
{
return await myAnalyzer.AnalyseAsync();
});
Но не удалось получить желаемого результата.
Ожидать хотел любую завершившившуюся задачу с помощью Task.WaitAny
// Дождаться завершения любой задачи
int numTask = Task.WaitAny(_tasks.ToArray());
Все попытки заканчивались тем, что задача получала статус завершения, до завершения..