Tu auras les mêmes inconvénients que tout code qui utilise plus d'un thread :
- la gestion des threads ça ajoute du boulot au CPU (si tu en as un supplémentaire pour toute ton appli ça reste toutefois complètement négligeable)
- à chaque fois que tu accèdes à une variable partagée entre plusieurs threads il faut protéger cet accès pour éviter les accès concurrents
- conséquence du point précédent : ton code gagne rapidement en complexité, juste pour la gestion du threading, et ta logique se trouve plus ou moins noyée dans tout ça
En général on utilise les threads lorsqu'on veut que deux choses se déroulent en parallèle. Or toi, ce que tu veux paralléliser à ton thread principal, c'est... rien, juste de l'attente. C'est pour ça que ça n'a vraiment pas de sens. De plus, les threads sont généralement une réponse à un problème technique (plusieurs calculs qui ne doivent pas se bloquer les uns les autres), or toi tu les utilises pour économiser à l'utilisateur un appel de fonction ; c'est plus que douteux et personnellement je ne ferai jamais ça