mmm in realtà non è nemmeno un problema...basta che le funzioni che scrivi le scrivi in modo ASINCRONO...(come la lettura dei dati da tastiera) e spari tutto in delle funzioni...
nel ciclo controlli una variabile che specifica se il ciclo deve essere interrotto e cosi puoi gestire tutto in maniera asincrona ^^
per evitare problemi nel codice ti consiglio l'uso massiccio di classi cosi tieni tutte le vars dentro le classi stesse
ciauz