Recuperer des images dans une imagelist

Signaler
Messages postés
27
Date d'inscription
jeudi 14 août 2003
Statut
Membre
Dernière intervention
28 août 2007
-
Messages postés
27
Date d'inscription
jeudi 14 août 2003
Statut
Membre
Dernière intervention
28 août 2007
-
Je recupère des images dans un controle imagelist à partir d'un dossier et ensuite je les affiche dans un controle listview. ça marche bien...
Seulement quand il y a peu d'image dans un dossier ça marche mais lorsque les images sont d'une grande quantité, j'ai ce message:<!-- BEGIN TEMPLATE: bbcode_quote -->

The CLR has been unable to transition from COM context 0x1a4958 to COM context 0x1a4ac8 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.

Si quelqu'un a une idée

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
place des DoEvents de temps a autres dans ta boucle

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
8
J'aime bien les messages d'erreur de vb.net c'est un vrai bonheur :p
Faudrait voir ton code pour en dire plus mais il semblerait que le temps de chargement crois avec le nombre d'image et arrive le moment ou deux chargement ce superpose.

Fait une tentative avec doevent mais cette solution neplait pas trop dans le sens ou tu va perdre en performance

@+

E.B.
Messages postés
27
Date d'inscription
jeudi 14 août 2003
Statut
Membre
Dernière intervention
28 août 2007

Voici la boucle dans laquelle je recupère les images et sur la ligne orange qu'il s'arrête pour envoyer le message d'erreur:
Try









While
getFileString <>

""


ImageList1.Images.Add(i, Image.FromFile(txtImage.Text &




""

& getFileString))





ListView1.LargeImageList ImageList1ListView1.SmallImageList ImageList1

ListView1.Items().Add(getFileString, i)

getFileString = Dir()

evrardenator = getFileString



i = i+1







End



While






Catch
ex

As
ExceptionMessageBox.Show(


"Impossible d'etablir la connection."
& ex.Message)


Return






Exit Sub






End



Try
Messages postés
27
Date d'inscription
jeudi 14 août 2003
Statut
Membre
Dernière intervention
28 août 2007

ça marche avec le Application.doevent.
Merci baucoup.

Mais s'il y a d'autres proposotions, cela me fera plaisir.