El paral·lel ForEach és asíncron?
El paral·lel ForEach és asíncron?

Vídeo: El paral·lel ForEach és asíncron?

Vídeo: El paral·lel ForEach és asíncron?
Vídeo: Они сражались за Родину (военный, реж. Сергей Бондарчук, 1975 г.) 2024, Maig
Anonim

Tota la idea darrere Paral·lel . Per cadascú () és que teniu un conjunt de fils i cada fil processa part de la col·lecció. Com heu notat, això no funciona asíncron - espera, on vols alliberar el fil durant la durada del asíncron anomenada. Per cadascú (), que suporta asíncron La tasca està bé.

Respecte a això, com espereu que finalitzi el foreach paral·lel?

No has de fer res especial, Paral·lel . Per cadascú () voluntat espera fins que totes les seves tasques ramificades siguin completa . Des del fil de trucada, podeu tractar-lo com una sola declaració síncrona i, per exemple, embolicar-lo dins d'un try/catch. No necessites això amb Paral·lel.

De la mateixa manera, foreach és asíncron? No és asíncron . Està bloquejant. Els que van aprendre un llenguatge com Java, C o Python abans de provar JS es confondran quan intentin posar un retard arbitrari o una trucada a l'API al cos del bucle.

A part d'això, com continueu en paral·lel a cada cas?

Quan vau convertir el vostre bucle en una definició compatible per a Paral·lel . Per cadascú lògicament, vas acabar convertint el cos de la declaració en lambda. Bé, aquesta és una acció que rep la convocatòria Paral·lel funció. Per tant, substitueix continuar amb return, i trenca amb les sentències Stop() o Break().

La tasca WhenAll és paral·lela?

L'aplicació de Quan Tot retorna un sol tasca això no està complet fins a tots tasca a la col·lecció s'ha completat. El tasques sembla córrer paral·lel , però no es creen fils addicionals. El tasques es pot completar en qualsevol ordre.

Recomanat: