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…