Recuperer des images dans une imagelist

cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007 - 26 juil. 2007 à 18:32
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007 - 31 juil. 2007 à 11:08
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 23:09
place des DoEvents de temps a autres dans ta boucle

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
27 juil. 2007 à 08:37
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.
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
27 juil. 2007 à 11:02
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
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
31 juil. 2007 à 11:08
ça marche avec le Application.doevent.
Merci baucoup.

Mais s'il y a d'autres proposotions, cela me fera plaisir.
0
Rejoignez-nous