Priorités du DoEvents

Résolu
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 13 mai 2008 à 16:31
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 14 mai 2008 à 11:30
Bonjour à tous,

Une question sur les priorités du DoEvents, soit:

Private Sub CmdStart_Click()



'****************
'* Preparation           *
'****************



Call Start



'****************
'*    Suite                 *
'****************



End Sub


et sa fonction:

Private Function Start()
    Do
        'Ecriture du mot de commande
        Call Ecriture_ModBus(Bilan, MbuPortComm, 8501, 1, ValW())
        DoEvents
    Loop While Bilan <> ""
   
End Function

Ma question est la suivante, lorsque la fonction 'Start' s'execute par le 'CmdStart_Click()', est ce que le DoEvents (ici en rouge) peut autoriser le déroulement de ce qui suit l'appel de la fonction (en vert ) dans le 'CmdStart_Click()'?

En espérant avoir été assez clair, merci de votre aide.

Jimy

Pensez: Réponse acceptée
'**********************************************

5 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 mai 2008 à 16:35
Salut,
Si j'ai bien compris ta question je te répondrais NON.

la suite en Vert s'executera QUAND et uniquement QUAND la fonction Start sera terminée. et heureusement j'ai envie de dire...

Les pros VB6 me corrigerons si j'ai tort.

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 mai 2008 à 16:36
Extrait MSDN


Arrête momentanément l'exécution afin que le système d'exploitation puisse
traiter d'autres événements.

Syntaxe

DoEvents( )

Remarques

La fonction DoEvents renvoie une valeur de type
<object id= "alink_4" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_4.Click() Integer] représentant le nombre de feuilles
ouvertes dans les versions autonomes de Visual Basic (Visual Basic Édition
professionnelle, par exemple). DoEvents renvoie un zéro dans toutes les
autres applications.

DoEvents passe la main au système d'exploitation jusqu'à ce que ce
dernier ait terminé de traiter les événements de sa file d'attente et que tous
les codes de la file d'attente SendKeys aient été transmis.

La fonction DoEvents est particulièrement indiquée pour les opérations
simples que l'utilisateur veut annuler juste après les avoir lancées, comme par
exemple la recherche d'un fichier. Pour les opérations nécessitant une exécution
plus longue, l'opérateur pourra plus aisément rendre la main au processeur s'il
a recours à un contrôle Timer ou à un composant EXE ActiveX. Dans ce cas, la
tâche s'effectue de manière complètement indépendante, hors de votre
application, le système d'exploitation gérant à la fois le multitâche et le
partage du temps.

Attention   Lorsque vous rendez la main de manière
temporaire à votre processeur dans une procédure d'événement, veillez à ce que
la
<object id ="alink_5" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_5.Click() procédure] ne soit pas exécutée à nouveau
par une autre portion de votre programme, avant que le résultat du premier appel
ne soit renvoyé ; cette situation peut avoir des conséquences inattendues. En
outre, n'utilisez pas DoEvents s'il existe un risque d'interaction
imprévisible entre d'autres applications et votre procédure pendant que
l'exécution est suspendue.

@+: Ju£i?n
Pensez: Réponse acceptée
0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
13 mai 2008 à 16:47
Merci Julien,

la suite en Vert s'executera QUAND et uniquement QUAND la fonction Start sera terminée. et heureusement j'ai envie de dire...

J'avais bien lu le MSDN, mais je ne savais pas si la "Suite" ne faisait pas partie de la file d'attente en l'occurence, j'ai donc préféré demander l'avis à la communauté VB.

Encore merci
Jimy

Pensez: Réponse acceptée
'**********************************************
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2008 à 06:32
messages (souris, clavier, etc)
autres applis,


telle est la file d'attente
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
14 mai 2008 à 11:30
Merci Renfield,

Connaitrais-tu un lien ou autre sur de la documentation concernant le principe de fonctionnement du processeur (genre 'Processeur PC pour les nuls...), je touche à la prog depuis un moment maintenant, mais j'ai de véritables carrances à ce sujet. 

Jimy

Pensez: Réponse acceptée
'**********************************************
0
Rejoignez-nous