2010-09-22 10 views
1
public class ReplacementService : IReplacementService 
{ 
    public List<int> GetTeamReplacementWeight(int iTeamId) 
    { 
     IEnumerable<TeamReplacementGroup> groups = TeamReplacementGroup.GetTeamGroups(iTeamId); 
     List<int> weights= groups 
      .Select(group => group.GetWeight()) 
      .AsParallel() 
      .ToList(); 

     return weights; 
    } 
} 

L'opération 'GetWeight' est relativement petite (pour 1 objet, elle peut être exécutée pas plus de 1ms).AsParallel: cela a-t-il un sens pour un petit nombre d'éléments dans le conteneur?

Est-il sensé d'utiliser 'AsParallel' si la taille de la collection est comprise entre 3 et 8 éléments? Je l'utiliserais certainement pour des séquences de plus de 100 éléments, mais pour les petites ...

Mon souci est que les dépenses pour la création de threads et l'attente de leur achèvement, avec les résultats de composition suivants dans un tableau prendra plus de ressources que possible bénéfice de l'utilisation de différents threads.

Pensez-vous que mon souci est précieux?

Toutes les pensées sont les bienvenues!

Répondre

1

Votre problème semble valide. Vous pourriez faire quelques tests/benchmarks pour voir à coup sûr? Here est une ressource de Microsoft.