Hi Stuart. Thanks for your reply. I've got some comments:
1. If you are talking about the "priority" property of the timed loops, I understand that unfortunately this has effect only with respect to parallel timed loops. The value can be between 1 and 2147480000, and only indicates the relative priority order between parallel timed loop structures.
2. Now I've also increased the execution priority, but I have the same problem.
3. I am performing all in one loop. I have a "stop" button and some boolean and numeric indicators (even a chart), which actualize on every loop. Does this force the whole VI or the timed loop to run on the UI thread? Maybe it forces "dialog" between the DAQ and the UI thread. I would appreciate if you could clarify this for me.
I am still a little confused with this matters. Can every "branch" of a diagram execute on different threads or execution systems? In which way could I separate DAQ and UI on different loops? Using local variables? Queues? Other synchronization tools?
If the problem are the controls and indicators included in the loop, would it correct the problem if the front panel is closed, I mean, executing as a subVI of a bigger program?
4. In the "execution" VI properties one can set the "preferred execution system" for this VI. Anyway this does not guarantee that the whole VI will effectively execute on this system, even if all subVIs are set to run on "same as caller". I was wandering if there was another way to trace the threads that correspond to each execution system and the code portions that are running on each one.
About the "same as caller" preference, I've got another doubt. On my timed loop DAQ VI I am using a "buffer" subVI (similar to queue functions) created by me which stores data on a shift register. This subVI is not reentrant, so I avoid undesirable read/write problems. This subVI's preferred execution system is set to "same as caller", so I suppose that it will attemp to run on the DAQ execution system. My doubt comes because I've got a separate VI, set to run on the "standard" execution system, that calls this buffer subVI to read the data. How does LabView manages this? Does the buffer subVI permanently switch between execution systems? What could be the advantages of the queue functions?
For the records, the original problem that motivated this discussion remains the same even if I do not use this buffer VI.
Thank you