AGB  ·  Datenschutz  ·  Impressum  







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

ComObj und Thread

Ein Thema von EWeiss · begonnen am 22. Mai 2014 · letzter Beitrag vom 22. Mai 2014
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: ComObj und Thread

  Alt 22. Mai 2014, 09:57
Die Frage ist nur wo sollte man die Initialisierung aufrufen bzw Uninitialisieren.
Jedesmal wenn ich ein neues ComObj erstelle und wieder freigebe ?
Nein.
CoInitialize - jedesmal wenn Du eine neue Thread Instanz erstellst
CoUnInitialize - kurz bevor der Thread terminiert
Vorher also vor BeginThread?
Oder direkt im Anschluss.

CoUnInitialize dann bevor ich ExitThread(0); abfeuere.

gruss
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

AW: ComObj und Thread

  Alt 22. Mai 2014, 10:02
Bevor der Thread gestartet wird (eine Chance hat auf die Com zuzugreifen).
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: ComObj und Thread

  Alt 22. Mai 2014, 10:16
So wie ich das verstanden habe muss das innerhalb des Thread-Kontext aufgerufen werden wo das ComObj dann auch benutzt wird.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: ComObj und Thread

  Alt 22. Mai 2014, 10:19
So wie ich das verstanden habe muss das innerhalb des Thread-Kontext aufgerufen werden wo das ComObj dann auch benutzt wird.
Ich hab es mal versucht aber es macht keinen Unterschied ob mit oder ohne.
Hmm wider mal so ein Problem.

Sollte nicht so einfach sein denn der Thread ist in einer DLL und wird von außen gesteuert.

Danke für eure Hilfe muss mich mal intensiver damit beschäftigen.

Der Thread wird ja in einer Funktion erstellt nicht zum aktuellen Thread-Kontext zählt.
Ist eine einfache Classe in der die API Messagen/Funktionen von der Anwendung zur DLL geschickt werden
Vielleicht muss ich die Execute Funktion dann in der Classe einlagern zu der mein Thread gehört.

Ist immer ein Kampf wenn das eine zum anderen nicht passt.

gruss

Geändert von EWeiss (22. Mai 2014 um 10:47 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: ComObj und Thread

  Alt 22. Mai 2014, 11:38
Hab gerade was gefunden in wie weit ist das Aussagekräftig?

Zitat:
On a different note, ComObj calls CoInitialize/Ex only for EXEs, not for DLLs. A DLL's lifetime and threading requirements is a subset of its host application. Therefore, it is the responsibility of the host application to initialize the COM runtime before calling into a DLL application. Explicitly calling CoInitialize/Ex in a DLL can result in unpredictable behavior and nasty runtime failures.
EDIT:
Ok das wars
Innerhalb der DLL hat das keinerlei Auswirkung.
Wenn ich hingegen die Initialisierung in der EXE ausführe bevor ich das Plugin starte funktioniert es.

gruss

Geändert von EWeiss (22. Mai 2014 um 11:49 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: ComObj und Thread

  Alt 22. Mai 2014, 15:34
Muss das Com-Objekt nicht in den Thread gemarshalled werden (CoMarshalInterThreadInterfaceInStream), da es ja in einem anderen Threadkontext erstellt wurde?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: ComObj und Thread

  Alt 22. Mai 2014, 15:42
Muss das Com-Objekt nicht in den Thread gemarshalled werden (CoMarshalInterThreadInterfaceInStream), da es ja in einem anderen Threadkontext erstellt wurde?
Weiss jetzt nicht was du damit meinst in D2010 ?
Und wenn es geht wie stelle ich das an ?

Lieber wäre mir das natürlich wenn es innerhalb meiner DLL laufen würde
macht mich unabhängig von den Anwendungen.

gruss
  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 03:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz