Destruction de socket, un thread reste actif
bonjour,
J'utilise la classe TClientSocket (dans System.Win.ScktComp) avec laquelle je suis confronté à un problème lorsque je détruit l'objet.
Je créé le socket par:
Code:
1 2 3 4 5
| ClientSocket1 := TClientSocket.Create(nil);
ClientSocket1.OnError:= ClientSocket1Error;
ClientSocket1.Host := '192.168.0.1';
ClientSocket1.Port := 502;
ClientSocket1.Active:=true; |
Je le détruit par :
Code:
1 2
| ClientSocket1.Close;
ClientSocket1.free; |
Dans mon cas l'adresse IP n'existe pas et donc lorsque je détruit l'objet, le thread qui a été créé par l'API n'est pas détruit et alors une exception apparait quelques secondes après la destruction du socket :
Exception 'first chance' à $00000000. Classe d'exception $C0000005 avec un message 'access violation at 0x00000000: read of address 0x00000000'. Processus MyAPP.exe (5452)
Si quelqu'un a une idée pour détruire le thread du socket en même temps qu'on détruit le socket ??
En revanche je n'ai pas de problème lorsque je quitte mon application.
Merci
Franck