Un numéro de référence, ou refnum, est un identifiant unique que LabVIEW crée pour un objet ouvert, tel qu'un fichier, un périphérique ou une connexion réseau. Les refnums identifient les objets pour les opérations tant qu'ils restent ouverts.

Toutes les opérations que vous effectuez sur les fichiers, périphériques ou connexions réseau ouverts utilisent des refnums pour identifier chaque objet. Utilisez une commande ou un indicateur refnum pour communiquer à ou d'un VI. Par exemple, vous pouvez utiliser une commande refnum pour modifier le contenu d'un fichier référencé par un refnum sans fermer et rouvrir le fichier.

Étant donné qu'un refnum est une référence temporaire à un objet ouvert, il est valide uniquement pour la période pendant laquelle l'objet est ouvert. Si vous fermez l'objet, LabVIEW dissocie le refnum de l'objet et le refnum devient obsolète. Si vous ouvrez à nouveau l'objet, LabVIEW crée un nouveau refnum qui est différent du premier.

LabVIEW garde en mémoire les informations associées à chaque refnum, comme l'emplacement actuel pour lire ou écrire à partir de l'objet et le degré d'accès de l'utilisateur. Par conséquent, vous pouvez effectuer des opérations simultanées mais indépendantes sur un seul objet. Si un VI ouvre un objet plusieurs fois, chaque opération d'ouverture renvoie un refnum différent.

Les refnums peuvent être de type strict ou type faible.

LabVIEW alloue de la mémoire pour un objet qui est associé à un refnum. Fermer un refnum libère l'objet de la mémoire. Suivez ces recommandations pour utiliser la mémoire des refnums le plus efficacement possible :

  • Fermez les refnums dès que vous en avez fini. LabVIEW ferme automatiquement les refnums lorsqu'un VI termine son exécution, mais conformément aux bonnes pratiques de programmation, il vous est conseillé de fermer les refnums dès que vous avez fini de les utiliser.
  • Fermez les refnums dans l'ordre inverse de celui dans lequel vous les aviez ouverts.

    Par exemple, considérons un programme qui effectue les tâches suivantes :

    1. Obtient un refnum à l'objet A
    2. Appelle une méthode sur l'objet A pour obtenir un refnum à l'objet B

    Dans ce cas, fermer les refnums dans cet ordre :

    1. Fermer le refnum à l'objet B
    2. Fermer le refnum de l'objet A
  • Si vous ouvrez un refnum dans une boucle For ou une boucle While, fermez le refnum à chaque itération de la boucle.

    LabVIEW alloue de la mémoire pour le refnum de façon répétée et ne la libère qu'à la fin de l'exécution du VI.