Einzelnen Beitrag anzeigen

Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#2

AW: CoInitialize Verständnisproblem

  Alt 7. Aug 2012, 11:46
Du vermischt "single/multithreaded appartment" mit "multithreaded application".

Ich mache es immer so:
Jeder thread ruft im Execute CoInitialze/CoUninitialize auf, instantiiert das Interface und arbeitet damit.
Delphi-Quellcode:
Procedure TMyThreadWithInterface.Execute;
Var
  MyInterface : IMyInterface;

Begin
  CoInitialize();
  MyInterface := CoMyInterface.Create();
  Try
    While not Terminated do WorkWith(MyInterface);
  Finally
    CoUninitialize();
  End
End;
Ich glaube, ein Interface bzw. den Zeiger kann man nicht zwischen Threads hin und her übergeben und deshalb instantiiere ich es im Execute.
  Mit Zitat antworten Zitat