Un thread distinct crée un TidTCPClient et un TTimer. TTimer est défini sur 3s et si TCPClient n'est pas connecté, il appelle TCPClient.Connect.
S'il n'y a pas de serveur auquel se connecter, cela provoque une tentative de connexion toutes les 3 secondes. Le thread principal (UI) ne fait rien, mais si je prends la fenêtre avec la souris et la déplace lentement à travers l'écran, il est coincé toutes les 3 secondes pendant environ 2 secondes, puis il passe à la position du curseur de la souris et suit à nouveau la souris, jusqu'à ce que la prochaine tentative de connexion se produise. En d'autres termes, le thread principal semble être bloqué lorsque le TCPClient tente de se connecter.Pourquoi un TidTCPClient dans un thread séparé bloque-t-il le thread principal?
Pourquoi cela se produit-il, même si le TCPClient est dans son thread séparé?
Les composants n'existent pas dans les threads, ils existent en mémoire. Le code s'exécute dans le thread dans lequel vous l'appelez. –