-
XML et threads
Bonjour,
Je travaille avec les documents XML est dans les cas ou je les traite à l’intérieur des threads (dans « execute») il m’arrive d’avoir une erreur « CoInitialize n'a pas été appelé. » Dans le cas ou j’ai pris TXMLDocument et j’ai fait LoadFromFile ca marche pas du tout, il y a toujours cette erreur. J’ai rien trouvé sur le net.
-
Salut,
essai d'ajouter ActiveX dans la clause uses
-
Ca ne marche pas. Par contre si on sort les traitements dans une procédure qu’on appelle en mode synchronisée (avec synchronize) alors ca marche.
-
Simple, quand tu travaille sur les Thread, bien souvent on se retrouve avec cette erreur (notement lors de la gestion activeX ou COM)
Il suffit de faire appel a CoInirialize(Nil) (unit activeX) puis a CoUninitialize en debut et fin de traitement (thread)
Si on sort l'appel du thread, il est executé depuis le thread principal donc delphi a deja fait appel a ces fonctions.
-
Merci, ca résout vraiment le problème. Mais ces fonctions la on peut les mettre directement au début et à la fin de la procédure Execute du thread ? Y a pas de contre-indications pour ca ?
-
non c'est meme conseillé :)
Vu que seul la procedure Execute est reelement threadé.
L'initialisation je ne pense pas. Elle doit s'executé dasn le thread principal.