Solution
The issue arises due to the inherent differences in how LabVIEW and text-based programming languages handle multithreading. LabVIEW is designed to automatically manage parallelism, allowing for efficient execution of multiple tasks simultaneously. However, when a DLL is created from LabVIEW code and used in a text-based program, this automatic parallelism is not automatically preserved.
The reason for this is that text-based does not inherently support the same level of automatic parallelism as LabVIEW. When you call a DLL from a text-based programming language, it runs in the context of the calling thread.
To maintain the parallel performance of your LabVIEW code when creating a DLL and using it in any other programming language, follow these steps:
- Open the top-level VI Properties Ctrl + L
- Select the Execution Category
- Set the Prefered Execution System to standard.