genek,
There really shouldn't be any issue with using DAQ_Monitor in a separate thread. Many people have used that technique to get their data rather than depending on the half buffer transfers.
Have you isolated the hang directly to the DAQ_Monitor call? Is it possible that some other call in the timer is causing the hang? For instance, you could change the timer so that the only call made is the one to DAQ_Monitor. This would continuously overwrite your data, but just for troubleshooting, you would know whether DAQ monitor or some other call is stopping the program.
Similarly, you could do the same with the other functions in your timer.
Are you performing error checking to make sure that the operation is still running before you use DAQ_Monitor? It may be tha
t the acquisition has stopped due to an error (like a hardware buffer overrun). Then DAQ_Monitor would have a problem trying to transfer from an acquisition that is not in progress.
I hope one of these two ideas can get you moving again.
John N
Applications Engineer
National Instruments