Einzelnen Beitrag anzeigen

iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit COM dll und Thread

  Alt 9. Jan 2022, 07:51
Hallo,
ich habe ein Messgerät, welches über eine COM dll gesteuert wird.
Da die eine Messung initiierende Funktion blockiert, bis die Messung abgeschlossen ist, soll die in einem eigenene Thread ablaufen, um die GUI nicht zu blockieren.

Jetzt habe ich folgendes Problem:
- Die Measure-Funktion im Hauptthread aufgerufen läuft genau wie sie soll:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
pico.Measure('S11'); //geht
end;
- Die Measure-Funktion im Thread aufgerufen erzeugt eine Access Violation innerhalb der COM dll:

Delphi-Quellcode:
procedure MeasureThread.DoExecute;
begin
while not terminated do
  pico.Measure('S11'); //access violation in COM dll
end;


procedure MeasureThread.Execute;
begin
inherited;
CoInitialize( nil );
try
  DoExecute;
  finally
  CoUninitialize;
  end;
end;
Hat dafür jemand eine Erklärung?
  Mit Zitat antworten Zitat