Bonjour,
j'ai une application complexe pilotée par un Userform.
Le userform comprend (entre autres) 1 bouton start et 1 bouton stop.
En mode start, le code
* scanne les fichiers d'un répertoire,
* les traite,
* attend 15 secondes
* recommence son scan.
jusqu'à ce que le bouton stop soit enfoncé.
'Code Du Bouton start
'Code du bouton Stop
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub Start_Polling_Click() '.... Do While BStop = False Found_Entry = "" Found_Entry = Dir(Search_file, vbNormal) Do While Found_Entry <> "" And BStop = False ' Start the loop. 'Traitement Found_Entry = Dir Loop If Not BStop Then Me.Status_text = "Waiting 15 sec before Polling" Application.Wait (Now + TimeValue("0:00:15")) Me.Repaint End If Loop '.... End Sub
J'ai 2 soucis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Stop_Polling_Click() '... BStop = True '... End Sub
1) La boucle d'attente via
consomme plus de 90% des ressources de mon pc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Wait (Now + TimeValue("0:00:15"))
Je cherche une solution moins gourmande.
2) Certainement une autre conséquence du soucis 1, il faut cliquer de nombreuses fois sur le bouton <Stop> pour arrêter le processus.
Est-il possible de faire autrement où dois-je d'urgence réécrire mon code dans un langage plus adapté comme le C++ ?
Partager