J'ai un problème aussi décrit ici: http://www.delphigroups.info/3/9/106748.htmlconstructeur C RAD 2010 RTL/VCL Application-> terminate() Fonction NON L'APPLICATION
J'ai essayé presque toutes les formes de placement Application-> terminate() func partout dans le code, suivre et non 'return 0', 'ExitProcess (0)', 'ExitThread (0)', exit (0). Aucune variante de travail ne ferme l'application. Au lieu de cela, le code après l'application Application-> Terminate() est en cours d'exécution.
J'ai deux threads ou plus dans l'application. J'ai essayé d'appeler termin func dans created après les threads d'exécution et dans le thread principal.
Aussi ce n'est pas lié (autant que je peux l'imaginer) avec CodeGuard/madExcept (je l'ai éteint et allumé, aucun effet). Le tournage de CodeGuard n'a pas non plus réussi.
La seule variante de code de travail consiste à placer l'appel Application-> Terminate() à n'importe quel gestionnaire OnClick de n'importe quel bouton de formulaire. Mais cela ne correspond pas à mes besoins. Je dois terminer à n'importe quel endroit.
Que dois-je faire pour mettre fin à tous les threads dans l'application C++ Builder 2010, puis mettre fin au processus?
Mais quelles sont les conditions à remplir? J'attends la fermeture de l'application pendant environ 2 minutes et rien ne se passe .. – ergey
J'ai trouvé que la seule façon de vraiment terminer mon programme dans n'importe quel endroit est d'appeler ces séquences: FormDestroy(); // aussi tous les blocs sans mémoire que je mets ici TerminateProcess (GetCurrentProcess(), 0) – ergey
@ergey J'ai développé ma réponse avec un exemple. – stukelly