Lorsque vous ouvrez une référence pour un VI que vous voulez appeler de manière asynchrone, vous devez décider si vous voulez recueillir les résultats du VI par après. Cette rubrique décrit comment démarrer un appel de VI asynchrone de type appeler et collecter et recueillir les résultats par la suite. Les autres langages de programmation utilisent le terme "fork-and-join" pour ce modèle d'utilisation. Il est aussi possible d'appeler un VI sans recueillir ses résultats.

Éléments utilisés

Utilisez les objets de diagramme suivants pour démarrer un appel asynchrone d'un VI de manière dynamique et recueillir les sorties du VI par la suite :

Comment procéder

Créez le diagramme de la figure suivante pour appeler un VI de manière asynchrone et recueillir les résultats par après.



La liste suivante décrit d'importants détails concernant le diagramme précédent.

Remarque L'Aide LabVIEW affiche les marqueurs d'option de la fonction Ouvrir une référence de VI en représentation hexadécimale. Par conséquent, changez toujours le format d'affichage de l'entrée constante numérique au format hexadécimal pour être sûr de passer la valeur correcte.

Mises en garde et recommandations

  • Abandon des VIs — Tenez compte des implications suivantes de l'abandon de VIs dans ce cas d'utilisation :
    • Si vous abandonnez le VI qui a ouvert la référence de VI de type appeler et collecter, LabVIEW ferme automatiquement la référence et abandonne toutes les instances du VI en cours d'exécution.
    • Si vous abandonnez une instance spécifique d'une référence de VI de type appeler et collecter, un nœud Attendre un appel asynchrone et un seul renvoie une erreur indiquant que le VI appelé a été abandonné. Tous les autres nœuds Attendre un appel asynchrone qui attendaient des appels de la même référence de VI continuent à attendre.
    • Si vous appelez la méthode Abandonner sur une référence de VI de type appeler et collecter, LabVIEW abandonne toutes les instances du VI en cours d'exécution. Un nombre correspondant de nœuds Attendre un appel asynchrone renvoient des erreurs.
  • Lorsque le VI qui a ouvert la référence de VI de type appeler et collecter finit de s'exécuter, LabVIEW ferme automatiquement la référence et abandonne toutes les instances du VI en cours d'exécution.
  • Si vous lancez plusieurs appels asynchrones à la même référence de VI, vous ne pouvez pas identifier directement quel appel du VI renvoie ses sorties à un nœud Attendre un appel asynchrone spécifique. Assignez un identifiant à un appel de VI si vous voulez savoir quelle instance du VI a renvoyé les résultats.

Variation : Collecte des sorties de plusieurs appels à des références de VI uniques

Le diagramme de la figure suivante fournit un modèle pour appeler plusieurs VIs de manière asynchrone puis recueillir leurs sorties. Comme chaque appel asynchrone est associé à une référence de VI unique, chaque nœud Attendre un appel asynchrone attend qu'un appel spécifique de VI se termine. Ce modèle est particulièrement utile pour créer des interfaces utilisateur avec des faces-avant secondaires dont le contenu représente les faces-avant de sous-VIs différents.



Exemples

Reportez-vous au VI Asynchronous Call and Collect.vi du répertoire labview\examples\Application Control\VI Server\Asynchronous Call By Reference pour consulter un exemple d'appel asynchrone d'un VI avec collecte ultérieure des résultats.