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