Je paralelný ForEach asynchrónny?
Je paralelný ForEach asynchrónny?

Video: Je paralelný ForEach asynchrónny?

Video: Je paralelný ForEach asynchrónny?
Video: Полный курс React Query за час | TanStack Query v4 для начинающих 2024, December
Anonim

Celá myšlienka za tým Paralelné . Pre každý () znamená, že máte sadu vlákien a každé vlákno spracováva časť kolekcie. Ako ste si všimli, toto nefunguje async - wait, kde chcete uvoľniť vlákno počas trvania async hovor. Pre každý (), ktorý podporuje asynchrónne Úloha je v poriadku.

Čo sa týka tohto, ako čakáte na dokončenie paralelného foreach?

Nemusíš robiť nič špeciálne, Paralelné . Pre každý () bude počkaj kým nebudú všetky jej rozvetvené úlohy kompletný . Z volajúceho vlákna ho môžete považovať za jeden synchrónny príkaz a napríklad ho zabaliť do try/catch. S tým to nepotrebuješ Paralelné.

Podobne je foreach asynchrónny? To nieje asynchrónne . Je to blokovanie. Tí, ktorí sa najprv naučili jazyk ako Java, C alebo Python predtým, ako vyskúšajú JS, budú zmätení, keď sa pokúsia vložiť do tela slučky ľubovoľné oneskorenie alebo volanie API.

Okrem toho, ako pokračujete v paralelnom foreach?

Keď konvertujete svoju slučku na kompatibilnú definíciu pre Paralelné . Pre každý logika, skončil si tak, že telo výroku bolo lambda. No, to je akcia, ktorú vyvoláva Paralelné funkciu. Takže vymeniť ďalej s return a break pomocou príkazov Stop() alebo Break().

Je úloha WhenAll paralelná?

Aplikácia WhenAll vráti singl úloha to nie je dokončené, kým každý úloha v zbierke je dokončená. The úlohy zdá sa, že vbehne paralelný , ale nevytvoria sa žiadne ďalšie vlákna. The úlohy možno dokončiť v akomkoľvek poradí.

Odporúča: