Les termes synchrone et asynchrone désignent le comportement des fonctions NI-VISA par rapport à leurs threads d'appel. Exécuter les fonctions NI-VISA de manière synchrone empêchera d'autres codes de s'exécuter dans le thread appelant. Dans certaines situations, telles que le transfert d'une grande quantité de données ou s'assurer que les données arrivent vers ou depuis le périphérique dès que possible, cela peut être souhaitable.
À un niveau inférieur, le thread appelant est verrouillé pour une durée différente selon que l'interface est synchrone ou asynchrone. Pour les opérations d'écriture, les données doivent être transférées de l'environnement de développement d'applications (ADE) aux ressources physiques sous-jacentes fournies par l'ordinateur. Pour les opérations de lecture, les données doivent être transférées des ressources physiques du périphérique à l'ADE. Ces deux transferts doivent passer par plusieurs couches de mémoire.
Pour une opération d'écriture, la séquence suivante se produit :
La même séquence se produit, mais dans l'ordre inverse, pour les opérations de lecture.
Pour les opérations synchrones, le thread appelant est déverrouillé entre les étapes 4 et 5 ci-dessus. Pour les opérations asynchrones, le thread appelant est déverrouillé entre les étapes 2 et 3. Pour choisir entre synchrone et asynchrone pour votre application, vous devrez tenir compte de la quantité de données écrites ou lues et du nombre de threads disponibles pour l'application.
Si une grande quantité de données doit être transférée en aussi peu de temps que possible, vous devriez envisager d'effectuer l'opération de manière synchrone car cela consacrera le thread appelant au transfert de données vers ou depuis les ressources matérielles. L'exécution asynchrone de l'opération permettra au thread appelant d'accéder à d'autres parties de l'application, mais il faudra plus de temps pour déterminer si les données ont été transférées vers ou depuis les ressources matérielles.
Si le nombre de threads disponibles pour une application est faible par rapport au nombre de processus parallèles, exécuter les opérations NI-VISA comme asynchrones rendra le thread appelant disponible plus tôt pour les autres parties de l'application. L'exécution de l'opération de manière synchrone consacrera le thread appelant à l'opération NI-VISA, garantissant qu'elle se terminera dès que possible mais au détriment des performances globales de l'application.
Pour choisir entre les fonctions synchrones et asynchrones dans LabVIEW, veuillez consulter les liens de l'Aide LabVIEW ci-dessous.