Hi dalvares,
I don't know anything about the software you are using, but if it's anything like the NI-IMAQ drivers used with
our frame grabbers, my guess is that your cameras are not synchronized using hardware-based timing - that is, they are not waiting for an external signal to trigger them at the same time. While you might get reasonable performance in the software-based synchronization you have there (with some time drift between each camera's capture frames every time you acquire), the fact that you are also writing the images to disk in the same loop can slow your acquisition down. That means you are adding another level of uncertainty to your timing - you already are having the cameras only loosely synched through software-timing, but now you are also adding the variable amounts of time that each might take to write their files to disk.
In order to try and synchronize the operations as best as possible with your current hardware setup, you may be best off placing a sequence frame in the acquisition which only contains the "Grab" VIs so that they all execute as closely together as possible (since the sequence frame will wait until all your "Grab" VIs are ready to be called in that loop iteration before it will actually call them.) Similarly, it would be best to pre-allocate all your buffers before your acquisition, if possible, so that you don't take the performance hit of writing them to disk within the while loop. Then you can fill them much faster as you acquire and then after you exit the loop, you can write each buffer to disk and dispose of them.