Éviter que l'application freeze pendant le traitement ?

Timst Messages postés 6 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 8 mai 2010 - 22 déc. 2009 à 15:01
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012 - 31 déc. 2009 à 21:58
Bonjour ! (Et désolé si je me suis trompé de section, je savait pas trop où poster...)

J'ai un léger problème avec mon code... pour résumer il s'agit d'une application qui transforme 4 caractères en 1 (exemple : 0001 devient A). Donc en général ça marche bien, mais là je faisait des tests pour voir combien de caractères pouvaient être traités à la fois. Il s'avère que l'application commence à freezer (mais ça termine quand même l'opération et le programme se defreeze) à partir d'environ 5000 caractères, et ça plante complètement à partir d'environ 40 000 (avec message du débuggeur et tout).
Entre 5000 et 40 000, bien que l'application marche, tout freeze pendant le calcul, la fenêtre est renommée "Nom de l'appli (ne répond pas)", et la barre de progresion que j'avais placé précisemment pour qu'on voit le déroulement n'est pas mise à jour. Après que le calcul soit terminé, tout revient à la normale, mais bon...

Donc ma question est la suivante : "Comment faire en sorte que l'application ne freeze pas pendant les calculs lourds ?"

Merci d'avance :)

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 déc. 2009 à 15:17
Ajoute un Application.DoEvents de temps a autre, ca permettra a ton appli de se raffraichir (vidage de la file d'attente des message)

après, y'a peut etre moyen (en plus) d'optimiser le traitement

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Timst Messages postés 6 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 8 mai 2010
22 déc. 2009 à 15:22
Ok, j'essaye ça :)

Mais oui, je crois que je vais essayer une méthode de conversion différente..
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
31 déc. 2009 à 21:58
bonjour,
cherche à utiliser un backgroundworker. ya un tuto sur multithreading quelque part. ça peut vraiment t'aider.
0
Rejoignez-nous