Bonjour,
J'ai un programme en VB.NET qui réalise de nombreux et longs calculs.
Aussi, j'ai prévu une barre de défilement, et un bouton annuler permettant à l'utilisateur d'interrompre le calcul sans attendre qu'il se termine.
Voici comment je le gère actuellement :
- le clic sur le bouton "annuler" met une variable à true
- au fur et à mesure du calcul, à la fin de chaque étape de calcul :
- je fait avancer la barre de défilement
- j'actualise l'affichage et je traite les événements
- je regarde la valeur de la variable, et si elle est vraie, j'arrête le calcul et je reviens en arrière
Comme vous l'avez compris la gestion de l’événement "annuler" n'est pas faite en continu.
Et les étapes peuvent êtres plus ou moins longue, cela dépend des données à traiter. Il est difficile voire impossible de savoir à l'avance quelles seront les étapes les plus longues.
Je cherche un moyen permettant d'interrompre mon calcul à n'importe quel moment. Pourquoi ?
Il y a deux raisons :
- d'abord, les étapes peuvent parfois êtres très longues
- ensuite et surtout, certaines étapes peuvent planter ou être si longues que cela bloque le logiciel
Pour ne rien arranger certaines étapes sont des appels de fonctions de DLL, et c'est justement ces étapes là qui plantent ou sont trop longues !
En fait ce que je cherche à faite, c'est une sorte de "watch dog" pour faire cesser mon calcul :
- dès que l'utilisateur veut qu'il s'arrête
- ou s'il est vraiement trop long (option activable par l'utilisateur, avec choix de la durée maxi au bout de laquelle mon logiciel propose de continuer ou d'arrêter)
Merci
A bientôt
Partager