Olá, estou estudando Tasks em C#, montei o seguinte código e não funciona:
public async void Metodo3() { List ltipos = new List() { 1, 2, 3, 4 };
var res = await TarefaAsync(ltipos);
foreach (double r in res)
{
Console.WriteLine("Resultado: " + r);
}
}
public Task<List<double>> TarefaAsync(List<int> ltipos)
{
List<double> resultado = new List<double>();
var tarefa = ltipos.Select(tipo =>
{
return Task.Factory.StartNew(() =>
{
var resultadoBusca = BuscaLista(tipo);
resultado.AddRange(resultadoBusca);
});
});
return Task.WhenAll(tarefa).ContinueWith(t =>
{
return resultado;
});
}
public List<double> BuscaLista(int tipo)
{
int inicio;
int fim;
List<double> resultado = new List<double>();
switch (tipo)
{
case 1:
inicio = 1;
fim = 19999;
break;
case 2:
inicio = 20000;
fim = 29999;
break;
case 3:
inicio = 30000;
fim = 39999;
break;
case 4:
default:
inicio = 40000;
fim = 49999;
break;
}
int div = 0;
for (int i = inicio; i < fim; i++)
{
div = i % 3;
if (div == 0)
{
resultado.Add(i);
Console.WriteLine(tipo+ " Achei: " + i);
}
}
return resultado;
}