Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi TXMLDocument: CoInitialize bei MultiThreading? (https://www.delphipraxis.net/129823-txmldocument-coinitialize-bei-multithreading.html)

Angel4585 26. Feb 2009 10:13


TXMLDocument: CoInitialize bei MultiThreading?
 
Hallo!

Ich verwende jetzt die TXMLDocument Komponente in einem Programm mit mehreren Threads.
Auf die Komponente wird auch aus mehreren Threads aus zugegriffen.
Wenn ich zB im Hauptthread ein FXML.LoadFromFile(Datei) aufrufe funktioniert dies problemlos.
Rufe ich jedoch aus einem Thread dieses FXML.LoadFromFile(Datei) auf, bekomme ich die Meldung "CoInitialize wurde nicht aufgerufen".
Mit CoInitialize und CoUnInitialize funcktioniert es.

Jetzt die Frage(n):
Was macht dieses CoInitialize? Wird die Verwendung der XML Komponente dadurch threadsicher?
Sprich kann ich gleichzeitig aus mehreren Threads die Datei laden und reinschreiben?

Falls dies nicht der Schlüssel ist, wie mache ich diese Komponente am besten threadsicher?

mfg :angel:

Edit: Den Text zu CoInitialize aus der Hilfe kenn ich schon, aber warum muss ich CoInitialize nur in nem Thread aufrufen und nicht im Hauptthread?

himitsu 26. Feb 2009 10:21

Re: TXMLDocument: CoInitialize bei MultiThreading?
 
CoInitialize initialisiert innerhalb des Threads einige Dinge von Windows
(vorallem bezüglich der COM-Schnittstellen) ... siehe MSDN-Library durchsuchenCoInitialize

TXMLDocument Threadsicher?
also Threadsicher isses wohl so oder so nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz