PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

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 tâche parallèle.
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.
Versions 23 et supérieures
Java Cette fonction est désormais disponible pour les applications Java.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 23
Java Cette fonction est désormais disponible pour les applications Java.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Android Cette fonction est désormais disponible pour les applications Android.
Java Cette fonction est désormais disponible pour les applications Java.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Android Cette fonction est désormais disponible pour les applications Android.
// Utilisation de la syntaxe 1
t1 est une TâcheParallèle = TâcheParallèleExécute(ProcédureA, (), tpoThreadPrincipal)
// Utilisation de la syntaxe 2
t2 est une TâcheParallèle = TâcheParallèleExécute(ProcédureB, (DateDuJour(), HeureSys()))
// Utilisation de la syntaxe 3
t3 est une Description de TâcheParallèle
t3..Procédure = Procédure3

TâcheParallèleExécute(t3)
// Utilisation de la syntaxe 3
t3bis est une Description de TâcheParallèle
t3bis..Procédure = Procédure3bis
t3bis..Paramètre[1] = DateDuJour()
t3bis..Paramètre[2] = HeureSys()

TâcheParallèleExécute(t3bis)
// Déclaration de plusieurs tâches et exécution d'un traitement à la fin de toutes ces tâches.

MaDescriptionTâche est une Description de TâcheParallèle
tabMesTâches est un tableau de TâcheParallèle // Résultat des fonctions tâches parallèles

// Tâche N°1
MaDescriptionTâche..Procédure = Exemple2_Etape1

// Exécute les tâches parallèles
// On ajoute la tâche renvoyée à un tableau de tâches
// pour pouvoir les réutiliser dans la fonction TâcheParallèleExécuteAprèsToutes
Ajoute(tabMesTâches, TâcheParallèleExécute(MaDescriptionTâche))

// Tâche N°2
MaDescriptionTâche.Procédure = Exemple2_Etape2
Ajoute(tabMesTâches, TâcheParallèleExécute(MaDescriptionTâche))

// On donne la procédure à exécuter une fois que
// toutes les tâches contenues dans le tableau tabMesTâches sont terminées
TâcheParallèleExécuteAprèsToutes(tabMesTâches, Exemple2_Fin, (), tpoThreadPrincipal)
Syntaxe

Exécuter une tâche parallèle Masquer les détails

<Résultat> = TâcheParallèleExécute(<Procédure> [, <Paramètres> [, <Options>]])
<Résultat> : Variable de type TâcheParallèle
Variable de type TâcheParallèle correspondant à la tâche à exécuter.
<Procédure> : Chaîne de caractères ou variable de type Procédure
Procédure à exécuter. Ce paramètre peut correspondre :
  • au nom de la procédure à exécuter.
  • au nom de la variable de type Procédure correspondant à la procédure à exécuter.
<Paramètres> : Liste de valeurs entre parenthèses et séparées par des virgules
Paramètres de la procédure à exécuter. Cette liste de paramètres est de la forme :
(<Paramètre 1>, ..., <Paramètre N>)
où :
  • <Paramètre 1> : Premier paramètre de la procédure.
  • ...
  • <Paramètre N> : Nième paramètre de la procédure.
<Options> : Constante optionnelle de type Entier
Options de la tâche à exécuter :
tpoCopieComplèteContexteHFSQLProvoque la copie immédiate du contexte HFSQL courant.
Conseillé par exemple si la tâche parallèle doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.
tpoCopieDifféréeContexteHFSQL
(Valeur par défaut)
Provoque une copie légère du contexte HFSQL lors du premier accès aux données HFSQL.
tpoCopieLégèreContexteHFSQLProvoque la copie immédiate d'une partie du contexte HFSQL courant.
Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.
tpoThreadPrincipalExécute la tâche dans le thread principal.
Attention : Cette constante ne peut pas être utilisée pour exécuter une tâche parallèle dans le thread principal depuis le thread principal.
Remarque : Pour savoir quel type de copie choisir, consultez le comparatif des différents modes de copie.

Exécuter une tâche parallèle déjà décrite (variable de type TâcheParallèle) Masquer les détails

<Résultat> = TâcheParallèleExécute(<Tâche>)
<Résultat> : Variable de type TâcheParallèle
Variable de type TâcheParallèle correspondant à la tâche exécutée.
<Tâche> : Variable de type TâcheParallèle
Nom de la variable de type TâcheParallèle correspondant à la tâche à exécuter.
Attention : Si la tâche est déjà en cours d'exécution ou a déjà été exécutée, une erreur WLangage sera provoquée.

Exécuter une tâche parallèle connue par sa description (variable de type Description de TâcheParallèle) Masquer les détails

<Résultat> = TâcheParallèleExécute(<Description tâche>)
<Résultat> : Variable de type TâcheParallèle
Variable de type TâcheParallèle correspondant à la tâche exécutée.
<Description tâche> : Variable de type Description de TâcheParallèle
Nom de la variable de type Description de TâcheParallèle décrivant la tâche à exécuter.
Remarques
  • La tâche est enregistrée dans la file d'attente des tâches à exécuter.
  • La fonction TâcheParallèleExécute n'est pas bloquante et n'attend pas la fin de la tâche.
  • Comparatif des différents types de copie du contexte HFSQL :
    Type de copieAvantagesInconvénients
    Copie complèteCopie :
    • les paramètres de connexion au sens large (connexions, chemins physiques, ...).
    • les positions, les filtres, ... définis sur les fichiers de données.
    • les requêtes.
    Consommation mémoire (sur le client et sur le serveur).
    Copie légèreCopie les paramètres de connexion au sens large (connexions, chemins physiques, ...).
    Pas de consommation mémoire sur le poste Serveur.
    Les enregistrements et les filtres en cours ne sont pas copiés. Il est donc nécessaire de repositionner les enregistrements par la fonction HLitRecherche par exemple.
    Pas de copie des requêtes.
    Consommation mémoire sur le poste Client
    Copie différéePas de consommation mémoire (sur le client et sur le serveur). Risque : Si les paramètres de connexion au sens large sont modifiés, la dernière modification sera prise en compte.
    Les enregistrements et les filtres en cours ne sont pas copiés. Il est donc nécessaire de repositionner les enregistrements par la fonction HLitRecherche par exemple.
    Pas de copie des requêtes.
En règle générale, la copie différée est conseillée à condition de ne pas changer les paramètres de connexion et de refaire les HLitRecherche nécessaires.
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.
Composantes
WINDEVWEBDEV - Code ServeurEtats et Requêtes wd230vm.dll
Java wd230java.jar
Linux wd230vm.so
Android wd230android.jar
Version minimum requise
  • Version 20
Documentation également disponible pour…
Commentaires
Procédure uniquement
Une précision, seules les procédures peuvent être éxécutées. Pour éxécuter une méthode encapsulée dans un objet, il faut créer une procédure qui exécutera la méthode
Hervé Franco
27 avr. 2017