Exemple Tache Parallèle dans Windev

par | Nov 26, 2021 | Non classé, PC Soft, Webdev, Windev | 0 commentaires

Exemple d’utilisation d’une tache parallèle en Windev.
Les tâches parallèles ne bloquent pas l’application et s’effectue en tâche de fond.
Voici un exemple qui appelle la procédure de calcul du S/P avec une procédure qui actualise l’interface dans le thread principal.


! Attention !
Si vous avez besoin d’utiliser directement les informations sur la base de données il faudra alors passer en paramètres tpoCopieComplèteContexteHFSQL à la place de tpoCopieLégèreContexteHFSQL (voir l’aide de PC Soft pour plus d’information)


JAUGE_Sinistre..TexteJauge	= "Calcul en cour..." // On indique à l'utilisateur qu'un traitement/calcul sur le champ jauge est en cour... L'application n'est pas bloquée...

soit tache_SsurP = TâcheParallèleExécute(Calcul_SsurP, (CodeCLient), tpoCopieLégèreContexteHFSQL)
	
TâcheParallèleExécuteAprès(tache_SsurP, TâcheParallèleExécuteAprès_Callback,(ValeurRenvoyéeTâchePrécédente),tpoThreadPrincipal)
	
     PROCÉDURE INTERNE Calcul_SsurP(p_s_CodeCLient est une chaîne)
		
	        rSinistralité	est un réel			= 0
	

            // traitement du calcul du S/P
            // ...
    

	        // Renvoyer le résultat...
	        RENVOYER rSinistralité
	
     FIN

     PROCÉDURE INTERNE TâcheParallèleExécuteAprès_Callback(rSinistralité)
		    
            // On affiche le résultat dans une jauge...
		
			SI rSinistralité > 100 ALORS
				JAUGE_Sinistre..BorneMax = PartieEntière(rSinistralité)
			SINON
				JAUGE_Sinistre..BorneMax = 100
			FIN
			
			JAUGE_Sinistre..TexteJauge	= "%1" // Affiche le pourcentage actuel de la jauge...
			JAUGE_Sinistre				= rSinistralité
			
			SI rSinistralité > 50 ALORS
				JAUGE_Sinistre..CouleurJauge = RougeFoncé
			SINON	
				JAUGE_Sinistre..CouleurJauge = RVB(66, 133, 244)
			FIN
			
			JAUGE_Sinistre..Opacité = 100
		
	FIN	
	

0 commentaires

Soumettre un commentaire