PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Fonctionnement
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Déclenche l'exécution d'une procédure par le thread principal de l'application.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Versions 19 et supérieures
WINDEVLinux Cette fonction est désormais disponible pour les applications WINDEV sous Linux.
WEBDEV - Code ServeurLinux Cette fonction est désormais disponible pour les sites WEBDEV sous Linux.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Windows Mobile Cette fonction est désormais disponible pour les applications Windows Mobile.
Nouveauté 19
WINDEVLinux Cette fonction est désormais disponible pour les applications WINDEV sous Linux.
WEBDEV - Code ServeurLinux Cette fonction est désormais disponible pour les sites WEBDEV sous Linux.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Windows Mobile Cette fonction est désormais disponible pour les applications Windows Mobile.
WINDEVLinux Cette fonction est désormais disponible pour les applications WINDEV sous Linux.
WEBDEV - Code ServeurLinux Cette fonction est désormais disponible pour les sites WEBDEV sous Linux.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Windows Mobile Cette fonction est désormais disponible pour les applications Windows Mobile.
Versions 21 et supérieures
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Apple Watch Cette fonction est désormais disponible en mode Apple Watch.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Exemple
// Interagir avec l'utilisateur
UneRéponse est une chaîne
UneRéponse = ExécuteThreadPrincipal(ProcédureInteractionUtilisateur, "Message")
Syntaxe
<Résultat> = ExécuteThreadPrincipal(<Procédure> [, <Paramètre 1> [... [, <Paramètre N>]]])
<Résultat> : Chaîne de caractères
Valeur de retour de la procédure appelée. Cette valeur est identique à la valeur obtenue si la procédure est directement lancée.
<Procédure> : Chaîne de caractères
Nom de la procédure à exécuter.
<Paramètre 1> : Optionnel
Paramètres à passer à la procédure. Attention : ces paramètres sont passés par valeur (et non par référence).
<Paramètre N> : Optionnel
Paramètres à passer à la procédure. Attention : ces paramètres sont passés par valeur (et non par référence).
Remarques

Fonctionnement

L'exécution de la procédure est effectuée par le thread principal lorsque celui-ci est en attente d'interactions avec l'utilisateur.
Lorsque le thread principal d'une application doit exécuter des procédures appelées par ExécuteThreadPrincipal, il faut donc respecter des règles strictes :
  • le thread principal doit être hautement disponible : sections critiques très courtes et très localisées, pas de traitement long lorsqu'un thread secondaire peut avoir besoin d'appeler la fonction ExécuteThreadPrincipal, pas d'attente d'objet de synchronisation (sémaphores, signaux, ...).
  • l'appel à la fonction ExécuteThreadPrincipal depuis les threads doit se faire en évitant de "tenir" des objets de synchronisation (sections critiques, sémaphores, signaux, ...) pour éviter un interblocage (deadlock).
Si le thread principal est en cours d'exécution d'un traitement, ce traitement n'est pas interrompu et l'exécution de la procédure sera faite lorsque le thread principal repassera en attente d'interaction avec l'utilisateur.
La fonction Multitâche permet toutefois d'interrompre un traitement long pour traiter les actions de l'utilisateur et exécuter les procédures appelées par la fonction ExécuteThreadPrincipal.
L'appel de la fonction ExécuteThreadPrincipal est bloquant tant que le thread principal n'a pas exécuté la procédure.
Attention :
  • La fonction ExécuteThreadPrincipal ne permet pas d'appeler une procédure d'un contexte d'exécution "parent". Par exemple, il n'est pas possible d'appeler une procédure du projet depuis un composant externe.
  • Les erreurs et les exceptions provenant de la procédure exécutée sont remontées dans le thread appelant au niveau de l'appel de la fonction ExécuteThreadPrincipal.
Liste des exemples associés :
Utilisation des tâches parallèles Exemples unitaires (WINDEV) : Utilisation des tâches parallèles
[ + ] Les tâches parallèles permettent notamment d’accélérer les temps de traitement et d'améliorer la réactivité d’une application.
Cet exemple présente les fonctions et types de variables nécessaires à l'utilisation des tâches parallèles :
- exécution de tâches parallèles,
- interaction avec les champs,
- tâches de continuation.
Composante : wd240wm.dll
Version minimum requise
  • Version 17
Documentation également disponible pour…
Commentaires
Equivalent de ExécuteThreadPrincipal en configuration Java
Astuce : en configuration Java, depuis la version 23 de Windev, il est possible d'exécuter une procédure dans le thread principal en utilisant la constante tpoThreadPrincipal en 3ème argument de la fonction TâcheParallèleExécute(). Voir la documentation détaillée ici : https://doc.pcsoft.fr/?1000021211&verdisp=230
Jean
30 déc. 2018