cest tout a fait logique. tu crée ton instance a la fin du thread, et tu la show. apres qqs secondes, le garbage collector passe, puis détruit ta form puisque ton thread est terminé. tu as donc deux solutions :
1 - passer la fenetre en membre pour toujours garder une référence (mon dieu cest la pire solution a adopter ici, mais dans certains cas cest ce qu'il faut faire, j'en parle si tu as un jour des soucis de GC). En plus ca risque de lever des exceptions a cause des opérations cross thread
2 - appeler showdialog au lieu de show, afin d'avoir une fenetre modale et que ton thread soit interrompu tant que la fenetre n'est pas fermée par l'utilisateur (dc pas de soucis de garbage collection)
A noter cependant qu'on évite toujours de créer des formulaire dans un autre thread que le thread principal (sinon tu vas fatalement te retrouver avec des opération cross thread, et tu vas en chier, sans parler du probleme que tu viens d'avoir que tu n'aurais pas eu autrement. Donc la tu devrais faire un invoke sur une méthode qui crée ton formulaire, plutot que de le créer directement dans le thread