Aktywne Wpisy

TfarukBartus +269
Nigdy nie zabrałem nic ze śmietnika aż do dzisiaj (lvl24), poszedłem wyrzucić śmieci a tu się okazało że ktoś wyrzucił 3 kartony gier, jako graczowi szkoda mi gier na płytkach więc zabrałem je ze sobą... W domu moim oczom ukazały gry zwykle, edycję specjalne, edycję kolekcjonerskie, a większość to gry dzieciństwa/nastoletnich lat, stan płyt w większości to 6/6 bądź 5/6 (ciekawe czemu wyrzucił taką kolekcje?), no cóż trzeba zamówić stacje płyt na
źródło: temp_file1193380493045836339
Pobierz
Heexi +117





Mirki mam pewien problem z asyncami, bo osobiście nigdy ich nie używałem w ten sposób (robiłem jawnego Taska jak już, i zwykle raczej fire and forget, więc nie musiałem tego synchronizować).
Mam sobie rzecz którą próbuję przerobić na asynchroniczną wersję w ramach testu czy będzie szybciej czy wolniej, ale coś chyba nie do końca ogarniam temat, bo zdaje się, że robi mi się deadlock i nie wiem czemu.
Mam zwieszkę na Task.WaitAll. Co jest nie tak? Bebechów nawet macie po co analizować - synchronicznie to na pewno wszystko dobrze działa, nawet jeśli dało się to ładniej napisać xD
https://pastebin.com/7dy7fWhq
Komentarz usunięty przez autora
Komentarz usunięty przez autora
Komentarz usunięty przez autora
private void #!$%@?()
{
string tags =
Komentarz usunięty przez autora
Komentarz usunięty przez autora
5800 ms -> 3800 ms.
Jak wejdę sobie do tej listy tasków w momencie dojścia do WaitAll, to taski są jeszcze nierozpoczęte. Jak dojdzie do linii WaitAll, to ewidentnie wszystkie te taski się
Komentarz usunięty przez autora
Komentarz usunięty przez autora
Task.WaitAll(Task.WhenAll(tasks.ToArray()));
Takie coś też nie działa. WhenAll tworzy taska, który się zakończy jak zakończą się rzeczy które są do niego przypisane. Ten górny task widać też nie łapie.
Chyba trzeba na Stacku się zapytać.
Komentarz usunięty przez autora
Komentarz usunięty przez autora
Może się dowiemy o co chodzi.
Działa w momencie gdy zrobię prymitywnego asynca na samym ReadImages i wtedy odpalam go bezpośrednio do tej listy (bez pośrednika w postaci Task.Run). Ot dałem na końcu await Task.CompletedTask; i działa. Działa także zmiana zwykłego foreacha na asynchroniczny:
Parallel.ForEach(parsedTags, currentTag => ReadImages(currentTag));
Komentarz usunięty przez autora