you might compare using the repeat function of timers to doing the loop.
menu status,menubar {
Test It
.Do &Repeat:timermsg -m 2 3000 echo -a Test Repeat $!asctime(ss)
.Do Test &Loop: {
set %x 1
while ( %x <= 2) {
TIMERmsg $+ %x -m 1 $calc(3000 + %x * 16) echo -a Test Loop %x $asctime(ss)
inc %x
}
}
}
Results:
echos the seconds, 3 seconds apart
* Timer msg activated
Test Repeat 57
Test Repeat 00
* Timer msg halted
they all finish "at the same time" well 16 miliseconds apart

* Timer msg1 activated
* Timer msg2 activated
Test Loop 1 11
* Timer msg1 halted
Test Loop 2 11
* Timer msg2 halted