2010-10-05 8 views
1

Je génère les vignettes de divers fichiers image, maintenant je veux l'optimiser en utilisant le fil ou la file d'attente. Ainsi, lorsque je sélectionne un dossier, il génère une image de pouce un par un comme dans la recherche de Windows. Je suis nouveau en C#, aidez-moi s'il vous plaît. Merci, TanmoyGénérer des vignettes en utilisant C#

+2

Puisque vous générez déjà l'image, par conséquent je pense que vous devriez mettre à jour la question quelque chose comme ... * Comment optimiser la génération de miniatures * –

Répondre

6

Vous pouvez utiliser Task Parallel Library pour y parvenir. Quelque chose comme:

alt text

En outre, la caisse:

+1

Aimer l'utilisation de Paralell.ForEach;) – Sascha

+0

Oui, la parallélisation semble le moyen de aller. Essayez cette recherche aussi si vous n'avez pas encore .net4 ou si vous préférez ne pas utiliser une bibliothèque supplémentaire http://stackoverflow.com/search?q=parallelize+c%23 – Larry

0

Je voudrais utiliser la BackgroundWorker classe (voir aussi this tutorial) pour générer les vignettes dans la Contexte. Quelque chose comme:

BackgroundWorker imageGenerator = new BackgroundWorker() 

foreach(var filename in imageFileNames) 
{ 
    imageGenerator.DoWork += (s, a) => GenerateThumbnailMethod(filename); 
} 

imageGenerator.RunWorkerAsync(); 

Cela générera les vignettes sur un fil séparé. Vous pouvez également obtenir le BackgroundWorker pour vous informer quand cela est fait en affectant un gestionnaire d'événement à son événement RunWorkerCompleted. Vous devriez le faire, car cela permet de vérifier les erreurs, car l'objet RunWorkerCompletedEventArgs a une propriété Error.

Questions connexes