così pianti l'applicazione per un tempo indefinito.

Puoi far partire un nuovo thread che fa la stessa cosa senza piantare l'applicazione. Usa un ciclo while che è più carino e più efficente.