4D v17.4

Utiliser...Fin utiliser

Accueil

 
4D v17.4
Utiliser...Fin utiliser

Utiliser...Fin utiliser  


 

 

La syntaxe de la structure Use...End use est la suivante :

 Use(Objet_partagé_ou_Collection_partagée)
    instruction(s)
 End use

La structure Use...End use définit une séquence d'instructions qui exécutera des tâches sur le paramètre Objet_partagé_ou_Collection_partagée sous la protection d'un sémaphore interne. Objet_partagé_ou_Collection_partagée peut être tout objet partagé ou collection partagée valide.

Les objets partagés et les collections partagées permettent d'établir des communications entre les process, en particulier les Process 4D préemptifs. Ils peuvent être passés par référence en paramètre d'un process à un autre. Pour plus de détails sur les objets partagés et les collections partagées, reportez-vous à la page Objets partagés et collections partagées. Encadrer les modifications sur les objets partagés et les collections partagées à l'aide des mots-clés Use...End use est obligatoire pour empêcher les accès concurrents entre les process.

  • Une fois que la ligne Use/Utiliser est exécutée avec succès, toutes les propriétés/éléments de Objet_partagé_ou_Collection_partagée sont verrouillé(e)s en écriture pour tous les autres process jusqu'à ce que la ligne End use/Fin utiliser correspondante soit éxécutée.
  • La séquence d'instructions peut alors effectuer toute modification dans les propriétés/éléments de Objet_partagé_ou_Collection_partagée sans risque d'accès concurrent.
  • Si un autre objet ou collection partagé(e) est ajouté(e) en tant que propriété du paramètre Objet_partagé_ou_Collection_partagée, il ou elle devient connecté(e) et appartiennent au même groupe partagé (cf. Utilisation des objets et collections partagés).
  • Si un autre process tente d'accéder à une propriété de Objet_partagé_ou_Collection_partagée ou une propriété connectée alors qu'une séquence Use...End use est en cours d'exécution sur le même Objet_partagé_ou_Collection_partagée, il est automatiquement placé en attente et attendra jusqu'à ce que la séquence courante soit terminée.
  • La ligne End use/Fin utiliser déverrouille les propriétés de Objet_partagé_ou_Collection_partagée et tous les objets qui partagent le même locking identifier.
  • Plusieurs structures Use...End use peuvent être imbriquées dans le code 4D. Dans ce cas, tous les verrouillages sont empilés et les propriétés/éléments ne seront déverrouillé(e)s que lorsque le dernier appel de End use/Fin utiliser sera exécuté.

Note : Si une fonction membre d'une collection (voir Méthodes de collection) modifie une collection partagée, un Utiliser interne est automatiquement mis en place pour cette collection partagée durant l'exécution de la fonction.



Voir aussi  

Objets partagés et collections partagées

 
PROPRIÉTÉS 

Produit : 4D
Thème : Présentation du langage

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v17)
4D - Langage ( 4D v17.1)
4D - Langage ( 4D v17.2)
4D - Langage ( 4D v17.3)
4D - Langage ( 4D v17.4)