Bonjour,
J'aimerai savoir comment fermer ma fonction/classe AutoUpdate (ci dessous) lorsque je dépasse un certain temps d'inactivité (TimedOut).
Ma classe vérifie via http sur un serveur si des mises à jour sont nécéssaires et les télécharges. Tout fonctionne correctement sauf un cas particulier :
Quand le serveur est super lent à répondre (pas quand il est tombé), ma classe met une plombe à tourner ... et donc le programme ne répond pas.
J'ai réussi à intégrer non sans mal un "Timer" qui me permet de sortir de la fonction si on dépasse un certain temps. Par contre comment tuer ensuite cette fonction ???
Merci d'avance pour votre aide
'Module de classe
'Utilises 2 autres classes pour avoir un objet de type Timer sans Form
Public WithEvents fSecurityTimer As CTimerReplacement
....
Public Function AutoUpdate(...)
.....
'Gestion du temps de téléchargement pour éviter les problèmes !!!
lStartTime = GetTickCount()
'Création du Timer
Set fSecurityTimer = New CTimerReplacement
fSecurityTimer.Start (1000)
'------------------------------
'Mon Bloc qui pose problème ...
'------------------------------
'Fermeture du Timer
fSecurityTimer.StopTimer
Set fSecurityTimer = Nothing
.....
End function
.....
Private Sub fSecurityTimer_OnTimer()
lCurrentTime = GetTickCount()
'On vérifie au cas où que le téléchargement n'est pas bloqué
If (lCurrentTime > (lStartTime + lMonTimedOut)) Then
'On coupe le téléchargement
bTimeOut = True
fSecurityTimer.StopTimer
'Set AutoUpdate = Nothing 'Reste à fermer la fonction AutoUpdate ????? End If
End Sub