Le soluzioni sono diverse.

Quella più utilizzata è senz'altro l'utilizzo di un timer che ad ogni
mezzo secondo (o un secondo) ti esegua la MoveNext.

Per una soluzione diversa si potrebbe creare una funzione di attesa
che non utilizzi il Timer.

Ciao,