La question à propos de HTTP est implémentée dans un thread utilisant IdHTTP. Je veux terminer le fil gracieusement si nécessaire. Pour cela, je vérifie périodiquement la propriété Terminated dans l'événement HTTPWork de IdHTTP. Si la propriété terminate est définie, la méthode IdHTTP.disconnect est appelée et le thread se termine.Delphi: comment terminer gracieusement un thread qui utilise IdHTTP pendant un timeout de connexion?
Cela fonctionne bien, mais considérez le scénario problématique suivante:
Pour une raison quelconque le réseau tombe en panne lorsque le fil est démarré. Après un délai d'expiration, il existe une exception d'erreur de socket qui est également OK, mais pendant l'intervalle de délai d'attente, aucun événement n'est déclenché depuis IdHTTP et il n'y a donc aucun moyen de vérifier la propriété terminée. Donc, la question est de savoir comment terminer gracieusement un thread qui utilise IdHTTP pendant un délai de connexion?
Ne contrôlez pas votre flux d'exécution de threads par des événements 'TIdHTTP'. – TLama
@TLama: IdHTTP fait le travail actuel. Y a-t-il une autre alternative? – user2046977