Sono curioso delle caratteristiche delle prestazioni di Parallel.ForEach. Dato un qualsiasi costrutto valido all'interno di un ciclo Parallel.ForEach, è sempre preferibile usare Parallel.ForEach su un ciclo foreach? Mi sto chiedendo in particolare il sovraccarico di invocare la libreria Attività parallele su insiemi di piccole dimensioni o altri casi limite in cui un ciclo foreach potrebbe essere più veloce. So che la libreria è abbastanza intelligente su quando/come generare i thread ... ci sono casi in cui è meglio lasciare il codice in un ciclo foreach, o è il sovraccarico per chiamare i task paralleli generalmente trascurabili, quindi se puoi, dovresti utilizzare Parallel.ForEach?Quali sono le linee guida per Parallel.ForEach vs. foreach?
Questa domanda è simile e fornisce buone informazioni sulle differenze funzionali, ma in realtà non parla con le prestazioni. Si noti che sto ignorando la compatibilità di NET < 4 come una ragione per stare con un foreach:
C#: Any benefit of List<T>.ForEach(...) over plain foreach loop?
Si potrebbe trovare alcune risposte qui http://www.microsoft.com/downloads/details.aspx?familyid=C3EA8FB5-650D-434B-A216-7E54C53965D1&displaylang=en –