Je li paralelni ForEach asinhroniziran?
Je li paralelni ForEach asinhroniziran?

Video: Je li paralelni ForEach asinhroniziran?

Video: Je li paralelni ForEach asinhroniziran?
Video: Tomáš Votruba - Jak zdarma hostovat na Githubu jemně dynamické stránky? 2024, Maj
Anonim

Cela ideja iza Paralelno . Za svaki () je da imate skup niti i svaka nit obrađuje dio kolekcije. Kao što ste primijetili, ovo ne funkcionira async - čekajte, gdje želite pustiti nit za vrijeme trajanja async poziv. Za svaki (), koji podržava asinhroni Zadatak je dobar.

S obzirom na ovo, kako čekate da se paralelni foreach završi?

Ne morate ništa posebno da radite, Paralelno . Za svaki () će čekaj dok svi njegovi razgranati zadaci ne budu kompletan . Iz pozivajuće niti možete ga tretirati kao jednu sinkronu naredbu i, na primjer, umotati ga u try/catch. Ne treba ti to sa Paralelno.

Slično, da li je foreach asinhroni? Nije asinhroni . Blokira se. Oni koji su prvi naučili jezik kao što je Java, C ili Python pre nego što su isprobali JS, zbuniće se kada pokušaju da stave proizvoljno kašnjenje ili API poziv u telo svoje petlje.

Osim ovoga, kako nastaviti paralelno foreach?

Kada ste svoju petlju pretvorili u kompatibilnu definiciju za Paralelno . Za svaki logike, na kraju ste napravili tijelo izjave lambda. Pa, to je akcija koju poziva Paralelno funkcija. Dakle, zamijenite nastaviti sa return i break sa Stop() ili Break() izjavama.

Da li je zadatak WhenAll paralelan?

Primjena od WhenAll vraća singl zadatak to nije kompletno do svake zadatak u kolekciji je završen. The zadataka izgleda da uleti paralelno , ali se ne kreiraju dodatne niti. The zadataka može završiti bilo kojim redoslijedom.

Preporučuje se: