> Can anyone give me a small sample of code, which shows how I can run
> in parallel vi's at the same time by using invoke nodes. Every which
> way I have tried just stops the data flow in the other vi's until each
> one is closed. Having a lot of trouble getting my head around this
> one. Would post my application but it's big.
The ways to execute VIs are using a subVI call, the Call by Reference
node, and the Run Method on a VI reference -- which is probably the one
that you are talking about. The Run method is very much like pushing
the Run button on the VI. It can either wait for the VI to complete or
it can push the button and return. This technique is one of many ways
to get some parallelism, but not if you are trying to run the same VI
several
times, or if the VIs being run share nonreentrant subVIs or are
otherwise blocking one another with semaphores or related items.
My suggestion would be to use a combination of breakpoints and execution
hilighting to see where the parallel tasks collide. Keep in mind that
VIs can be made reentrant in VI Settings, but the default is for this to
be off. If not reentrant, only one call can proceed at a time, and all
calls share side effects on controls and shift registers. Making a VI
reentrant means that multiple calls can proceed, but shared data such as
averaging shift registers will no longer work across all calls. Post
again once you have more symptoms.
Greg McKaskle