Rendre la main au systeme vb.net

FLO1978 Messages postés 18 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 1 août 2006 - 24 janv. 2004 à 12:07
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006 - 24 févr. 2006 à 00:46
Bonjour,

Je cherche a rendre la main ausysteme lors de l'execution d'un code FSO, le programme passe en "pas de réponse" mais travail toujours ...
j'avais pensez à " Me.refresh " mais cela ne change pas grand chose

Merci de votre aide

4 réponses

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
24 janv. 2004 à 12:54
Essaie 'Doevents'
ça Libere le pross
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 janv. 2004 à 13:02
Les threads existent en vb.net je crois.
Si c'est le cas, voila la solution.
ciao...
BruNews, Admin CS.
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
24 janv. 2004 à 13:04
Oops pas vu vb.net !!! dsl
0
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006
24 févr. 2006 à 00:46
En VB6 la procédure DoEvents() était globale et permettait au système le contrôle et donc empêcher l'application de se bloquer elle-même. Elle est toujours présente mais est désormais une procédure publique de l'objet Application.
En clair il suffit d'écrire :
Call Application.DoEvents()
D'une utilité sans égale pour les traitements en boucle comme les For-Next ou autres Do-Loop.

Attention cependant lorsque vous utilisez cette méthode dans une application événementielle car elle n'interrompt pas l'exécution de l'application, juste la procédure en cours. Il est donc possible qu'un autre événement soit traité avant que celui qui a été interrompu se poursuive.
Exemple :
Vous avez une feuille avec un bouton qui lance un traitement récurent assez long grâce à une boucle. Pour éviter le blocage de l'application vous mettez un DoEvents dans votre boucle. Il est tout à fait possible de recliquer sur ce même bouton et donc de lancer une deuxième fois le traitement, alors que le premier n'est pas terminé. Les deux traitements (identiques) vont donc s'exécuter en parallèle.

Malheureusement je n'ai pas encore trouvé d'alternative satisfaisante pour ce cas de figure...
Au mieux on peut désactiver le bouton (Enabled=False) au début et le réactiver à la fin (Enabled=True), un truc du genre.
0
Rejoignez-nous