Bonjour à tous
J'écris un petit exe (VB6) pour assurer la sauvegarde de nos données sur un disque externe.
Pour ce faire, je lance un timer par SetTimer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Call SetTimer(0, TIMER_ID, CLng(pStrElapse), AddressOf Sauve)
Do While True
    DoEvents
Loop
Je met pStrElapse="60000" (période du timer) donc toutes les secondes

Dans la fonction appelée, je vérifie à quelle heure j'effectue la sauvegarde et si j'y suis, je sauvegarde (une fois par jour)

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
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub Sauve()
Dim plIntI As Long
Dim pStrFileName As String
Dim pStrDestinationReelle As String
 
    On Error GoTo Errorhandler
 
    If Not pBooDone Then
        If Hour(Now) = "12" Then
            pStrDestinationReelle = pStrDestination & "\" & GetDateDir
            MkDir pStrDestinationReelle
 
            For plIntI = 1 To UBound(pStrSource)
                pStrFileName = GetFileName(pStrSource(plIntI))
                FileCopy pStrSource(plIntI), pStrDestinationReelle & "\" & pStrFileName
            Next
 
            pBooDone = True
        End If
    Else
        If Hour(Now) <> "12" Then
            pBooDone = False
        End If
    End If
 
Sortie:
 
    Exit Sub
 
Errorhandler:
    If Err = 75 Then
        Resume Sortie
    End If
 
End Sub
Donc je m'attend à ce que le temps CPU affiché par le Gestionnaire des tâches soit quasi nul
Or il est de 29% !!!

Que fait-il pendant tout ce temps ???

Merci de vos suggestions