Calling A VI Asynchronously To Avoid The "Root Loop" Issue

Updated Aug 24, 2018

Reported In

Software

  • LabVIEW

Issue Details

I am trying to call a VIs in my code asynchronously. For this I am using the Run VI property in a VI property node as shown below. However, when doing so I run into the "root loop" issue and my application becomes unresponsive for a short amount of time. How can I avoid this issue?

Solution

To avoid the issue use the asynchronous call Vi as shown below.

Additional Information

This issue is caused as the Run VI method requires the root loop to execute meaning that until this has finished executing the application will become unresponsive. The Asynchronous Call VI allows for opening a single reference and LabVIEW will spawn a new re-entrant instance on demand at the Start Async Call site avoiding the Root Loop entirely. For more information on the root loop mechanism see The Root Loop.