LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

called by reference vi thread

Hello, i'm writing an application that makes intensive use of dynamically called vis and i wonder about the efficiency of the multi-threading...Does a called by reference vi execute in the same thread than the caller, or in the thread set in its vi property ? Does the invoke node behave the same way or not ? Does the behavior change if the call is made within a timed loop ? Thanks for every lightening !

Vincent
0 Kudos
Message 1 of 2
(2,371 Views)

VdG wrote:

Hello, i'm writing an application that makes intensive use of dynamically called vis and i wonder about the efficiency of the multi-threading...Does a called by reference vi execute in the same thread than the caller, or in the thread set in its vi property ? Does the invoke node behave the same way or not ? Does the behavior change if the call is made within a timed loop ? Thanks for every lightening !


 

There is a KB article on the LV execution system (that makes my head spin) so I will avoid trying to summarize that info in a short reply.

 

The functionality that allows the use of of dynamic calles is simply AMAZING (speaking as someone that used to do Crash-Dump analysis for OS's). I have never been able to measure or detect a differnece in calling a VI dynamically vs explicitly. A nice implementation of this is LVOOP Dynamic Dispatching where the VI that is executed is determined at run time (now speculating) that I beleive uses VI server to accomplish this (since the requirements of Dynamic Dispatch are for the most the same as doing VI server calls).

 

Your Q about the Timed-Loop is a good one because the Timed loop does have an option that lets you assign which core the code will run in.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 2 of 2
(2,357 Views)