tthread

___ qstnhdr ___ TThread und COM - "CoInitialize wurde nicht aufgerufen", obwohl CoInitialize im Konstruktor aufgerufen wird ___ tag123multithreading ___ Multi-Threading ist die Fähigkeit eines Computers oder eines Programms, Arbeit gleichzeitig oder asynchron auszuführen, indem mehrere gleichzeitige Ausführungsströme (im Allgemeinen als Threads bezeichnet) verwendet werden. ___ tag123com ___ Das Component Object Model (COM) ist eine Komponententechnologie von Microsoft mit Remoting, Sprachunabhängigkeit und interface-basierter Programmierung. Bei Fragen zum seriellen COM-Port sollten Sie stattdessen das [serial-port] -Tag verwenden. ___ tag123ole ___ OLE-Automatisierung ist ein prozessübergreifender Kommunikationsmechanismus, der auf dem Component Object Model (COM) basiert. ___ answer38962486 ___

%code% initialisiert COM für den ausführenden Thread. Der Konstruktor einer Instanz %code% wird im Thread ausgeführt, der die Instanz %code% erstellt. Der Code in der Methode %code% wird im neuen Thread ausgeführt.

Dies bedeutet, dass Sie, wenn Sie Ihren %code% -Thread für die Initialisierung von COM benötigen, %code% in der Methode %code% aufrufen müssen. Oder eine Methode, die von %code% aufgerufen wird. Folgendes ist richtig:

%Vor%     
___ tag123thread ___ hilf uns dieses Wiki zu bearbeiten ___ tag123delphi ___ Delphi ist eine Sprache für die schnelle Entwicklung von nativen Windows-, macOS-, Linux-, iOS- und Android-Anwendungen mithilfe von Object Pascal. Der Name bezieht sich sowohl auf die Delphi-Sprache als auch auf deren Bibliotheken, Compiler und IDE, mit denen Delphi-Projekte bearbeitet und debuggt werden können. ___ qstntxt ___

Ich versuche COM-Schnittstelle innerhalb eines Threads zu verwenden. Nach dem, was ich gelesen habe, muss ich %code% in jedem Thread aufrufen.

Während dies funktioniert:

%Vor%

wenn ich die Aufrufe in Konstruktor und Destruktor verschiebe:

%Vor%

Ich bekomme EOleException: CoInitialize wurde nicht Ausnahme aufgerufen und ich habe keine Ahnung warum.

    
___
6
Antworten

Ausnahmebedingung in TThread Execute?

Ich habe gerade festgestellt, dass meine Ausnahmen dem Benutzer in meinen Threads nicht angezeigt werden! Zuerst habe ich das in meinem Thread benutzt, um die Ausnahme auszulösen, was nicht funktioniert: %Vor% Die IDE zeigt mir die Ausnah...
26.03.2011, 14:36
2
Antworten

Threadfehler: Der Handle ist ungültig (6), wenn er versucht, einen unterbrochenen Thread zu löschen

In einem gegebenen Beispiel erhalte ich eine Ausnahme beim Aufruf von AThread.Free. %Vor% Ich habe zwei Fragen: Wie soll ich AThread instance von TThread in einem gegebenen Beispiel freigeben? Ich verstehe nicht, warum TTh...
10.01.2012, 14:59
1
Antwort

TThread und COM - "CoInitialize wurde nicht aufgerufen", obwohl CoInitialize im Konstruktor aufgerufen wird

Ich versuche COM-Schnittstelle innerhalb eines Threads zu verwenden. Nach dem, was ich gelesen habe, muss ich CoInitialize/CoUninitialize in jedem Thread aufrufen. Während dies funktioniert: %Vor% wenn ich die Aufrufe in Konstruktor un...
15.08.2016, 20:18