Suppongo che un thread sia il sistema più pulito, ma forse in questo caso basterebbe delegare la "procedura" ad un Timer, disabilitandolo quando si verifica l'evento Tick per evitare una successiva esecuzione.