Am avut probleme cu task-urile si List<T> . Mai exact, List<T> nu e thread safe – dar tinzi sa uiti asta. Vedeti si http://msprogrammer.serviciipeweb.ro/2017/05/22/task-and-generic-list/ .
Cum sa fac un test care sa testeze cazurile acestea? Nu am ajuns la o concluzie buna, insa cred ca brute force ar trebuie sa fie de ajuns:
[Fact]
public async Task TestTasks()
{
var list= new List<Task>();
for(int i = 0; i < 10; i++)
{
list.Add(GetAndInterpretData());
}
await Task.WhenAll(list.ToArray());
Assert.False(list.Exists(t => t.Exception != null));
}
Cu citirea de pe hard si 10 iteratii , ajunge la 5 secunde. Cred ca e destul de bun…