se il ciclo e l'esecuzione del pulsante che dovrebbe fermare il ciclo sono sullo stesso thread (come il main thread) la cosa non è possibile..

Per fare ciò che chiedi tale ciclo deve stare su un thread separato..