Async ba ang parallel ForEach?
Async ba ang parallel ForEach?

Video: Async ba ang parallel ForEach?

Video: Async ba ang parallel ForEach?
Video: Is Parallel.For/ForEach in C# actually worth it? (and how to modernize it) 2024, Mayo
Anonim

Ang buong ideya sa likod Parallel . ForEach () ay mayroon kang isang hanay ng mga thread at ang bawat thread ay nagpoproseso ng bahagi ng koleksyon. Tulad ng napansin mo, hindi ito gumagana async - maghintay, kung saan mo gustong palabasin ang thread para sa tagal ng async tawag. ForEach (), na sumusuporta asynchronous Maayos ang gawain.

Tungkol dito, paano mo hihintayin na makumpleto ang parallel foreach?

Hindi mo kailangang gumawa ng anumang espesyal, Parallel . Foreach () kalooban maghintay hanggang sa lahat ng mga branched na gawain nito ay kumpleto . Mula sa thread ng pagtawag maaari mong ituring ito bilang isang solong kasabay na pahayag at halimbawa, balutin ito sa loob ng isang try/catch. Hindi mo kailangan iyon kasama Parallel.

Katulad nito, asynchronous ba ang foreach? Hindi ito asynchronous . Ito ay humaharang. Ang mga unang natuto ng wika tulad ng Java, C, o Python bago nila subukan ang JS ay malito kapag sinubukan nilang maglagay ng di-makatwirang pagkaantala o isang API na tawag sa kanilang loop body.

Bukod dito, paano ka magpapatuloy sa parallel foreach?

Kapag na-convert mo ang iyong loop sa isang katugmang kahulugan para sa Parallel . Foreach logic, ginawa mong lambda ang statement body. Well, iyon ay isang aksyon na tinatawag ng Parallel function. Kaya, palitan magpatuloy na may return, at break gamit ang Stop() o Break() na mga pahayag.

Ang gawain ba ay WhenAll parallel?

Ang aplikasyon ng KapagLahat nagbabalik ng single gawain na hindi kumpleto hanggang sa bawat gawain sa koleksyon ay nakumpleto. Ang mga gawain mukhang tumakbo papasok parallel , ngunit walang karagdagang mga thread na nalikha. Ang mga gawain maaaring makumpleto sa anumang pagkakasunud-sunod.

Inirerekumendang: