Grazie...

Ho risolto inserendo un semaforo nel ciclo While e uno in WindowClosing dove richiamo il metodo che cambia il valore alla variable booleana...

Comunque provo anche il tuo codice...