....Also if anybody would like to suggest any work arounds,
> feel free. The only idea I've had so far was to move all use of the
> ActiveX control to external code, which is not a very attractive
> solution for us.
ActiveX controls are loaded into the UI thread and all interactions with
them, property nodes, and invoke nodes, have to take place in the UI
thread/main thread of LV. So, setting the VIs to run in the
instrumentation or other execution systems, doesn't do much good since
each call to the property or invoke will just have to switch back.
What other choices do you have? If the control doesn't have a UI
anyway, it would improve matters if the control were simply an
automation server. The automation server can be set to run in a single
thr
eaded apartment, or a MT apartment. Changing it to MT means that you
will have to deal with protecting the code from being called from
different threads, and having those calls interleaving and competing
with one another. When you change it to be MT, it can tie up other
threads in LV and leave the UI thread alone. Another alternative is to
change the ActiveX control to spin up its own thread and have a method
that initiates, and one that reads the results or returns the status.
Greg McKaskle