06-23-2016 12:50 PM
LV2013
I vaguely remember reading somewhere that property nodes require a LV context switch, because they must be run on the UI thread.
<ul>
<li>Is that still true?
<li>Is that true even if the node does not pertain to a user control (e.g., an accessor for a private data field in a class) ?
<li>How much of a penalty is that? Anybody ever measured it?
<li>It's convenient to use a property node with 2+ terminals to access 2+ fields. Is that convenience outweighed by the performance drop?
<li>Are there papers or other docs explaining all this?
</ul>
Thanks
Blog for (mostly LabVIEW) programmers: Tips And Tricks
Solved! Go to Solution.
06-23-2016 01:41 PM
@CoastalMaineBird wrote:I vaguely remember reading somewhere that property nodes require a LV context switch, because they must be run on the UI thread.
This is only true of property nodes that run in the UI thread, such as ones that refer to the front-panel elements. Executing a LVOOP accessor through a property node is just syntactic sugar around a standard VI call, and doesn't force a thread switch. I seem to recall reading that there's a slight difference in that read accessors will always execute sequentially due to error handling, but I can't find that post in a quick search.
06-23-2016 02:29 PM
Thanks, nathand
So the rule is that UI property nodes must execute in the UI thread.
That makes more sense.
Blog for (mostly LabVIEW) programmers: Tips And Tricks