Damit die Anwendung weiter reagiert gibt es zwei verschiedene Möglichkeiten:
1.) Du lagerst alles in einen Thread aus oder
2.) Du gibst der Anwendung Zeit auf Ereignisse zu reagieren. In der Codebibliothek findet sich da 100%ig etwas.
Das mit dem Stoppen/pausieren:
1.) Stoppe/Starte den Thread oder
2.) Bau auf while..do oder repeat..until Schleifen um und prüf mit einer globalen Variable ob die Schleife durchlaufen werden soll oder nicht.
Threads machen zwar auf den ersten Blick mehr Arbeit, aber es könnt sich lohnen, das mal anzusehn
EDIT: Roter Kasten... marabu war schneller