Run Multiple Instances of a LabVIEW Executable Simultaneously

Updated Jul 12, 2018

Reported In

Software

  • LabVIEW

Issue Details

Applications that I build in LabVIEW are singletons, i.e., I can only have one instance open at a time. If I double-click the executable while an instance is already running, it simply opens up the already running executable.

Can I run multiple instances of a LabVIEW executable simultaneously?

Solution

Yes, it is possible to run multiple instances of a LabVIEW executable at the same time.  When a LabVIEW executable is run for the first time, it creates an ini file in the same directory and name as the executable itself. To do this you will need to add a line to the ini config file that is created after running a LabVIEW executable. By adding this line to the ini file, you can enable launching multiple instances of the corresponding executable. The line is:

allowmultipleinstances = TRUE

Following are the steps to accomplish this:
  • Build a LabVIEW executable
  • Run the executable one time. Observe that an ini config file is created in the same directory as the executable
  • Close the execution of the application and open the configuration ini file
  • Add the following line to the ini file beneath the [<Application_Title>] line, where <Application_Title> is the name of your executable (i.e. <Application_Title>.exe): allowmultipleinstances = TRUE
  • Save and close the ini file.
  • You can now run multiple instances of this application simultaneously

Additional Information

Note that to automate the process of adding tokens to an ini file, a custom configuration file can be selected in the Build Specifications Properties dialog box, by navigating to the Advanced category and selecting Use custom configuration file. For more information, read Will LabVIEW Queues or Semaphores Work Between Executables?

Also note that references to a Queue or Semaphore are only valid inside the process in which it was created. When both VIs are running in the LabVIEW development environment, they both belong to the same process. When you build the VIs into executables, each executable becomes its own process. So the reference created inside one executable is meaningless inside the other executable. In the case that you only build one VI into an executable and run the other VI in the LabVIEW development environment, the same holds true, you are still dealing with two separate processes. 

WAS THIS ARTICLE HELPFUL?

Not Helpful