Io il thread lo gestirei meglio

Prima cosa usa Join, cosi' occupi una risorsa solo per il thread e fino a che non finisce, questo perchè anche se usi net IL THREAD MULTIPLO funziona solo su macchina a 64 Bit e la tua non credo sia cosi'.

Poi controllalo, guarda lo stato del thread e se è attivo lokka tutto, altrimenti si impalla.

Comunque per thread multipli usa il thread ma per singoli come questo il DoEvents va benissimo...