J'ai une question sur la façon dont la récupération de place peut être traitée dans une requête linq. Supposons qu'on me donne une liste de demandes à traiter. Chaque requête génère un très grand ensemble de données, mais un filtre est appliqué pour conserver uniquement les données critiques de chaque chargement demandé. Donc, je sais que la requête est différée pour chaque élément de données jusqu'à ce que chaque élément de données filtré soit demandé, donc c'est bon. Mais cette partie intense de la mémoire moyenne persiste-t-elle jusqu'à ce que l'énumérable soit terminé? Ce que j'espère, c'est que chaque élément de données peut être récupéré dès qu'il passe l'étape filtrée, s'assurant ainsi que j'ai assez de mémoire pour traiter toute la liste. Est-ce le cas, ou est-ce que le milieu énumérable garde tout autour jusqu'à la fin de la requête entière? Si oui, y a-t-il un moyen de faire face à cela?Garbage Collection dans une requête linq
Note: la fonction Process() génère les données à forte intensité de mémoire ... thats ce que je suis inquiet pour
cool. mon souci était le intermédiaire énumérable de la première sélection tiendrait les données jusqu'à ce qu'il soit complété – tbischel
@tbischel: Non - LINQ ne contiendra pas de références, autres que celles que vous ajoutez à une collection, etc. Tant qu'il n'y a pas de refs, il peut être GCed. –