>>How do I yield from a C program back to the labview program?  It may
allow the other threads to run automatically but it blocks the UI thread I
think and that is >>really a significant block

Scott,

A small clarification to your point above:
If the LV DLL node is configured as "reentrant" (recommended if the C
function you are calling is multi-thread safe), then the DLL node runs in a
LV diagram thread. Blocking that thread will not impact the LV UI thread.
If the DLL node is not "reentrant", then it will be scheduled in the UI
thread and you then run the risk of a sluggish UI while the thread is
blocked by the DLL node.

If you are designing your own C libraries to be called from LabVIEW, then
its always a good idea to make them multi-thread safe and then configure
the corresponding LV DLL nodes  as "reentrant". It makes a significant
performance difference.

Cheers,
Rajesh Vaidya
Measurements Infrastructure Group
National Instruments




Reply via email to