Let me illustrate with a hypothetical example. Let's suppose you have a loop containing code that takes anywhere from 7 msec to execute. Let's further suppose that you use 10 msec delays with the two different functions, and that you enter your loop at t=2 msec.
Scenario A. Sequencing is used to make sure code execution occurs first, then the delay will start.
1. With "Wait (msec)", the timing will look like:
Iteration i: 0, 1, 2
Code ends: 9, 26, 43
Wait ends: 19, 36, 53
2. With "Wait Until Next msec Multiple", the timing will look like:
Iteration i: 0, 1, 2
Code ends: 9, 19, 29
Wait ends: 10, 20, 30
Scenario B. Delays are decoupled from code and execute in parallel
1. With "Wait (msec)", the timing will look like:
Iteration i: 0, 1, 2
Code ends: 9, 19, 29
Wait ends: 12, 22, 32
2. With "Wait Until Next msec Multiple", the timing will look like:
Iteration i: 0, 1, 2
Code ends: 9, 17, 27
Wait ends: 10, 20, 30
You are correct that proper selection depends on the situation. Very generally, 'wait (msec)' is just a simple delay while 'ms multiple' helps you to sync to a metronome-like beat. However, if you just barely miss a particular multiple, you get stuck waiting until the next one.
-Kevin P.
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.