Ho un codice che sto attualmente ottimizzando per la concorrenza nelle architetture multicore. In una delle mie classi, ho trovato un ciclo nidificato foreach
. Fondamentalmente il ciclo esterno scorre attraverso una serie di oggetti NetworkInterface
. Il ciclo interno esegue iterazioni tramite gli indirizzi IP delle interfacce di rete.Nested Parallel.ForEach loop
Mi ha fatto pensare che fare nidificare i loop Parallel.ForEach
è necessariamente una buona idea? Dopo aver letto questo articolo (Nested Parallel.ForEach Loops on the same list?) non sono ancora sicuro di cosa si debba applicare in termini di efficienza e design parallelo. Questo esempio richiede circa Parallel.Foreach
istruzioni applicate a un elenco in cui entrambi i loop eseguono operazioni su tale elenco.
Nel mio esempio, i loop stanno facendo cose diverse, quindi, dovrebbero I:
- utilizzare i cicli nidificati Parallel.ForEach?
- Utente Parallelo. Per il ciclo principale e lasciare il ciclo interno così com'è?
È possibile testare la soluzione utilizzando il cronometro? Allora saprai se ne vale la pena. – mike00