If you are using CVI 5.5 or greater, then there is a set of multithreading functions in the Utility library. There are synchronization objects in there called ThreadLocks that are similar to semaphores. Also, there are more advanced, easier to use tools like thread safe variables, thread safe queues, and thread local variables that have built in synchronization features. See the multithreading examples (cvi\samples\utility\threading) and the Multithreading Overview (cvi\bin\MulithreadingOverview.pdf) for more information on multithreading and synchronization in CVI.
Oh, and you can use SDK multithreading and synchronization functions, but I think you will find CVI's native functions much, much easier and effective.
Best Regards,
Chris Matthews
Nat
ional Instruments