La commande HExecuteProcédure() fonctionne en mode synchrone. C’est pratique lorsque l’on a besoin d’un compte rendu. Dans mon cas, un calcul de statistiques compliqué mais sans précision importante, je n’ai pas besoin de compte rendu d’exécution.
J’ai donc utilisé le mécanisme d’exécution de thread de Windev. Voici le code que j’ai utilisé :
//Lancement du Thread dans le code d’ouverture de ma fenêtre
ThreadExécute("STAT_HF",threadUtiliseHyperFile,Stat_Asynchrone)
//Code pour lancer la procédure stockée
ThreadEnvoieSignal("STAT_HF")
//Procédure locale à ma fenêtre
PROCEDURE Stat_Asynchrone()
//Une fois le thread démarré, il attend le signal pour exécuter la procédure.
BOUCLE
//On est enttente du signal
ThreadAttendSignal(Infini)
//Un signal est envoyé, on exécute le code de la procédure stockée.
SI sListe = "" ALORS
HExécuteProcédure(gcnxConnectHF,"MetAJourStat",gbNouveau,VENTE_CB)
SINON
HExécuteProcédure(gcnxConnectHF,"MetAJourStat",gbNouveau,VENTE_Liste)
FIN
//On fait un faux SORTIR pour éviter le warning du code
SI Faux ALORS SORTIR
FIN