AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi, MSXML und MultiThreading

Ein Thema von Olli73 · begonnen am 2. Jul 2024 · letzter Beitrag vom 2. Jul 2024
Antwort Antwort
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#1

Delphi, MSXML und MultiThreading

  Alt 2. Jul 2024, 13:21
Hallo!

MSXML scheint in der "Standardversion" nicht multithreading-fähig zu sein. Microsoft selbst sagt: https://learn.microsoft.com/en-us/pr...65459(v=vs.85)

Diese Multithreading-Version wird aber in "Xml.Win.msxmldom.pas" in Delphi nicht verwendet. Ich wusste mir nicht besser zu helfen, als eine Kopie davon in mein Projekt einzubinden und die "FreeThreadedDOMDocument-Version" dort als Erstes aufzuführen:

Delphi-Quellcode:
class constructor TMSXMLDOMDocumentFactory.Create;
begin
  SetDOMDocumentCoClasses([CLASS_FreeThreadedDOMDocument60, CLASS_DOMDocument60, CLASS_DOMDocument40, CLASS_DOMDocument30, //OMO added "CLASS_FreeThreadedDOMDocument60" at first position to use multithreaded version
    CLASS_DOMDocument26, Winapi.msxml.CLASS_DOMDocument]);
  ...
Oder gibt es eine bessere Möglichkeit?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.158 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Delphi, MSXML und MultiThreading

  Alt 2. Jul 2024, 13:35
Was hast du konkret vor? Ich glaube, ich verstehe die Frage nicht so ganz, denn eigentlich hatte mir ein CoInitialize(..) immer gereicht:

https://stackoverflow.com/q/34337327

https://stackoverflow.com/q/42904464

https://www.delphipraxis.net/189531-...anwendung.html
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#3

AW: Delphi, MSXML und MultiThreading

  Alt 2. Jul 2024, 13:41
Ich benutze MSXML in mehreren Threads gleichzeitig, natürlich immer ein eigenes Dokument pro Thread.

Was mich irritiert hat, ist dass MS ein spezielles "FreeThreaded..." hat. Da dachte ich, das braucht man für Multithreaded.

Und wenn es da tatsächlich Probleme gibt/gäbe, sind die ja nicht leicht zu finden...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi, MSXML und MultiThreading

  Alt 2. Jul 2024, 15:03
Das CoInitializeEx hat bei mir immer gereicht. Allerdings gibt es auch bessere Alternativen zu MSXML, mit denen einerseits die Geschwindigkeit extrem höher ist, mehrere Threads auch problemlos gehen, und andererseits auch keine COM Intialisierung usw. gebraucht wird.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 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