In terms of software driver calls, synchronous I/O makes a call to the driver on a given thread, and that thread blocks in the driver until the I/O either completes or times out. Nothing else can occur on that thread of execution. If you have set LabVIEW to run in single-threaded mode (or if you are running on Mac OS 8/9) then this means that nothing else at all can happen in LabVIEW while that I/O call is going on.
An asynchronous call means that control can return to LabVIE
W while the I/O is ongoing. LabVIEW can do other nice things like update the GUI. Then it can poll the driver periodically to see if it is done. You see that happening with a timeout of 0 so that LabVIEW remains in control of what it wants to happen when.
Dan Mondrik
Senior Software Engineer, NI-VISA
National Instruments