Are you using NI-DAQmx or Traditional NI-DAQ?
Regardless,
1. Assuming all devices are started and waiting for their triggers, multithreading should not affect when each device is triggered.
2. You mentioned that each device is independently triggered. If you actually want both devices to be use the same start trigger, you can configure each task's start trigger to be the same external signal. For a more accurate solution, you can configure one device send its start signal to the other device to be used as its start trigger. The NI-DAQmx example "Multi-Device Sync - Shared Timebase & Ext. Dig. Trigger" illustrates this approach (it also synchronizes the timebase between the two devices).
3. If accuracy isn't critical and you start to read the samples b
efore the acquisition is complete, the t0 timestamp in the Waveform Data Type provides this information. If you don't read samples before the acquisition is complete, the t0 timestamp will not be accurate. If accuracy is more critical, you could use a counter to measure the time elapsed after the trigger.
4. Nothing comes to mind, but I haven't tried.
--
Geoff Schmit
Huskie Robotics, FIRST Team 3061 Lead Mentor
http://team3061.org/
@team3061