Più utilizzo Parallel.ForEach e PLINQ nel mio codice, maggiore è il numero di volti e revisioni del codice che sto ricevendo. Quindi mi chiedo se ci sia qualche ragione per me per NON usare PLINQ, in estrema, su ogni istruzione LINQ? Può il runtime non essere abbastanza intelligente da avviare la generazione di così tanti thread (o il consumo di così tanti thread dal pool di thread) che le prestazioni della app si degraderebbero invece di migliorare? La stessa domanda si applica alla libreria parallela..NET 4 Parallel.ForEach e PLINQ: possono sopraffare il pool di thread e terminare le prestazioni dell'app?
Comprendo le implicazioni relative alla sicurezza del thread e al sovraccarico dell'utilizzo di multi-threading. Capisco anche che non tutto è buono per il parallelismo. Tutto quello che mi chiedo se dovrei smettere di difendere i miei approcci e rinunciare a queste due belle cose perché i miei colleghi pensano che farei meglio il controllo dei thread me stesso invece di affidarmi alle funzionalità .NET.
UPDATE: si supponga che l'hardware sia sufficientemente buono per soddisfare i prerequisiti per l'uso del multithreading.
credo che se non lo si imposta manualmente, plinq utilizza solo alcuni thread in base al numero di core che si hanno –
@LukeMcGregor: sai quali sono i valori predefiniti e come modificarli? – Schultz9999