J'ai une application en ce moment qui est une conception de pipeline. Dans une première étape, il lit des données et des fichiers dans un flux. Il y a des étapes intermédiaires qui font des choses dans le flux de données. Et puis il y a une dernière étape qui écrit le flux vers quelque part. Tout se passe en série, une étape se termine et passe ensuite à l'étape suivante.C# Stream Design Question
Tout cela a très bien fonctionné, mais maintenant la quantité de données commence à devenir un peu plus importante (des centaines de Go potentiellement). Donc je pense que je vais devoir faire quelque chose pour atténuer cela. Ma première idée est de savoir ce que je cherche sur ce point (étant un développeur indépendant, je n'ai pas d'endroit pour faire de l'idée). Je pense à créer un pipeline Parallel. L'objet qui commence le pipeline créerait toutes les étapes et kick chacune dans son propre fil. Lorsque la première étape mettra le flux à une certaine taille, il passera ce flux à l'étape suivante pour le traitement et démarrera un nouveau flux pour continuer à se remplir. L'idée ici étant que la dernière étape sera la fermeture des flux comme la première étape est la construction d'un nouveau afin que mon utilisation de la mémoire serait maintenue plus bas.
Donc, des questions: 1) Des pensées de haut niveau sur les directions pour cette conception? 2) Y a-t-il une approche plus simple à laquelle vous pouvez penser et qui pourrait s'appliquer ici? 3) Existe-t-il quelque chose qui existe déjà et que je puisse réutiliser (pas un produit que je dois acheter)?
Merci,
MikeD
Les extensions parallèles semble très prometteur. Je pense que je peux créer une tâche pour chaque étape, démarrer chaque étape et utiliser les nouvelles classes de collection simultanée pour passer les flux entre les étapes. Je ne voulais pas vraiment utiliser VS 2010, et je n'arrive plus à trouver la version preview. Je vais continuer à regarder. – MikeD
Le lien de téléchargement pour l'aperçu est ci-dessous, mais MS semble avoir changé de site Web et le lien ne fonctionne plus :-( http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD -593D-4B3C-B055-694C50D2B0F3 – ligos