Reentrancy—Indicates whether multiple instances of this VI can execute simultaneously. By default, a VI is non-reentrant, so each call to the VI must wait until other calls to the VI finish executing. To allow multiple calls to the VI to execute simultaneously, select one of the reentrant execution options.

(FPGA Module) By default, subVIs created under an FPGA target are reentrant.

Non-reentrant execution—Serializes simultaneous calls to this VI, thereby requiring minimal memory usage. This option also causes all calls to this VI to share a single state, preserving the values of controls and uninitialized shift registers among calls. If you intend to run your VIs on a real-time operating system, select Preallocated clone reentrant execution instead.

Shared clone reentrant execution—Allows parallel execution of simultaneous calls to this VI with relatively low memory usage. In order to reduce memory usage, this type of reentrancy reuses clones among VI calls. If a VI call occurs while all clones are in use, LabVIEW allocates a new clone for that VI call. Because this allocation happens on demand, this type of reentrancy introduces jitter. If you intend to run your VIs on a real-time operating system, select Preallocated clone reentrant execution instead.

Preallocated clone reentrant execution—Allows parallel execution of simultaneous calls to this VI while minimizing call overhead and jitter. This type of reentrancy allocates a separate clone for each call to the VI. Therefore, each VI call maintains its own state, preserving values of controls and uninitialized shift registers. As a tradeoff, this type of reentrancy requires more memory than Shared clone reentrant execution.

Priority—Determines the priority at which a VI runs in the LabVIEW execution system. Use this control to set the priority of an important VI above the priority of other VIs in the application. If another VI with higher priority calls this VI, the priority of this VI rises to match the priority of the calling VI. The priority of this VI never drops below the level you set in this dialog box.

Select subroutine priority to make the LabVIEW execution system run the VI as efficiently as possible. You cannot abort a VI that has subroutine priority. You also can use the Priority property to determine the priority of a VI programmatically.

Note The Priority option must be the same in a parent dynamic dispatch member VI and a child dynamic dispatch member VI.

Preferred Execution System—Sets the preferred execution system. LabVIEW supports multiple simultaneous execution systems. On some platforms, a VI running in one execution system also can run in the middle of a VI running in another execution system. This allows higher priority tasks, such as data acquisition loops, to interrupt long operations, such as slow calculations.

Normally, you set all VIs to run in the same execution system as the caller. To use an alternate execution system for a set of VIs, set the top-level VI to that execution system. All its subVIs also run in that execution system.

Note The Preferred Execution System option must be the same in a parent dynamic dispatch member VI and a child dynamic dispatch member VI.

Enable automatic error handling—Activates automatic error handling for the block diagram of the current VI. When the VI runs, LabVIEW suspends execution, highlights the subVI or function where the error occurred, and displays an error dialog box. You also can use the Automatic Error Handling property to enable automatic error handling for a VI programmatically.

Run when opened—Enables a VI to enter run mode and run automatically when you open it. You also can use the Run When Opened property to programmatically run a VI when it opens. To edit a VI set to run when opened, place it on the block diagram of a new, blank VI and double-click it.

Note LabVIEW ignores this option in the following scenarios:

When you use the VI Server to load the VI. Use the Run VI method to run a VI you use the VI Server to load.

When you designate the VI as a startup VI in a built application. Startup VIs run when they are opened by default and LabVIEW overrides the option you set in this dialog box. You can configure a startup VI to not run when it is opened when you configure the build specification. On the Source File Settings page of the Application Properties dialog box, click the Customize VI Properties button. In the VI Properties (Application Builder) dialog box, remove the checkmark from the Run when opened checkbox.

Suspend when called—Suspends a subVI when called and waits for user interaction. This option is the same as selecting Operate»Suspend when Called. You also can use the Suspend On Call property to suspend a VI programmatically.

Clear indicators when called—Causes an indicator, such as a graph, to clear each time you call the VI that contains the indicator. For a top-level VI, the indicators clear each time you run the VI.

Auto handle menus at launch—Causes LabVIEW to automatically handle menu selections when you open and run the VI. If you remove the checkmark from this option, the run-time menu bar is disabled until you can use the Get Menu Selection function to handle menu selections.

Autopreallocate arrays and strings—(FPGA Module) Optimizes array and string operations. This option forces LabVIEW to preallocate memory at compile time rather than dynamically allocating memory at run time. By default, the FPGA Module displays this option for VIs under FPGA targets in the Project Explorer window. This option must be enabled before you can compile VIs that use arrays or strings for FPGA devices. LabVIEW disables the Autopreallocate arrays and strings option on installations of LabVIEW without the FPGA Module. If you create a VI in a version of LabVIEW that does not have the FPGA Module installed and you later target that VI to an FPGA device, you must explicitly place a checkmark in the Autopreallocate arrays and strings checkbox and test the behavior of the VI on the FPGA device to verify that it is operating as expected.