Scheinbar hab ich das Problem gelöst, wobei es noch nicht vollständig ausgetestet ist. Sieht aber erst einmal gut aus.
Als Sync-Option verwende ich jetzt
stDontSync
In der Methode, in der ich die
COM-Operationen durchführe hab ich außerdem CoInitialize(nil) eingefügt
Delphi-Quellcode:
class procedure TServiceSupport.SendFile(AFile, ADescription:
string);
var
support: _Support;
supportResult:
string;
begin
try
CoInitialize(
nil);
support := CoSupport.Create;
...
support.Dispose;
support :=
nil;
CoUninitialize;
except
on E:
Exception do
begin
OutputDebugString(PChar(E.
Message));
end;
end;
end;
Damit sollte das Ganze dann also grundsätzlich in einem anderen Thread laufen. Mal sehen, auf welche Probleme ich dann damit stoße.