Är parallell ForEach asynkron?
Är parallell ForEach asynkron?

Video: Är parallell ForEach asynkron?

Video: Är parallell ForEach asynkron?
Video: Parallel For Each | MuleSoft | For Each V/S Parallel For Each 2024, Maj
Anonim

Hela tanken bakom Parallell . För varje () är att du har en uppsättning trådar och varje tråd bearbetar en del av samlingen. Som du märkte fungerar inte detta med asynkron - await, där du vill släppa tråden under hela tiden asynkron ring upp. För varje (), som stöder asynkron Uppgiften är bra.

Angående detta, hur väntar du på att parallell foreach ska slutföras?

Du behöver inte göra något speciellt, Parallell . För varje () kommer vänta tills alla dess förgrenade uppgifter är komplett . Från den anropande tråden kan du behandla det som ett enda synkront uttalande och till exempel slå in det i en try/catch. Det behöver du inte med Parallell.

På samma sätt, är för varje asynkron? Det är det inte asynkron . Det blockerar. De som först lärde sig ett språk som Java, C eller Python innan de provar JS kommer att bli förvirrade när de försöker lägga en godtycklig fördröjning eller ett API-anrop i sin loopkropp.

Utöver detta, hur fortsätter du parallellt för varje?

När du konverterade din loop till en kompatibel definition för Parallell . För varje logik, det slutade med att du gjorde uttalandet till en lambda. Tja, det är en åtgärd som anropas av Parallell fungera. Så, byt ut Fortsätta med retur och bryt med Stop() eller Break()-satser.

Är uppgift WhenAll parallell?

Tillämpningen av NärAlla returnerar en singel uppgift det är inte färdigt förrän varje uppgift i samlingen är färdig. De uppgifter verkar springa in parallell , men inga ytterligare trådar skapas. De uppgifter kan slutföras i valfri ordning.

Rekommenderad: