Ciao
per killare la tua applicazione, basta killare il thread corrente:
Threading.Thread.CurrentThread.Abort()
ti consiglio però di spostare eventuali codici "long running" o molto pesanti in un secondo thread, così da lasciare l'interfaccia utente libera di eseguirsi.
L'approccio variabile boolean è utilizzabile, ma per avere una form funzionante senza problemi dovresti mettere il codice che fa il ciclo in un secondo thread, oltre ovviamente a darti un intervallo come ad esempio:
Do
If varBool Then
'fai quello che vuoi
End If
Threading.Thread.Sleep(1000)
Loop
per evitare di consumare tutto il tempo della CPU.
Antonio Esposito
MCP, MCTS .NET 2.0 Distributed applications