Add non-blocking delay to do... while loop

I use millis() regularly to get a non-blocking delay, and that was my first choice, but couldn't get it to work in the do... while loop.
I tried several times but managed to either stop the iterations completely, or it was just ignored....

Any ideas how it could be structured please.