Hallo zusammen,
ich habe mal eine Frage zu Treads.
Ich bekomme beim Aufruf eines Konstrukts wie unten beschrieben unter Android ein Segmentation Fault.
Wenn eine Prozedur im Thread oder auch von einem tiefer verschachtelten Thread aufgerufen wird,
und dann mit Thread.Queue zum MainThread synchronisiert wird dann sollte das doch in JEDEM Fall korrekt funktionieren.
Deadlocks o.ä. gibt es dabei doch nicht, oder etwa doch ?
Kann es sein das dieses Bitmap im Thread auch einen anderen Kontext bekommt als im MainThread, und
das es deshalb vielleicht kracht ?
Jedenfalls kommt das Segmantation Fault wenn ich aus der Routine irgend etwas im UI Thread anfasse.
Delphi-Quellcode:
procedure TDiesIstEinTread.EvImThreadContext_KannAberAuchTieferVerschachteltSein(Image: TBitmap);
begin
if Assigned(procResult) then
begin
TThread.Queue(nil,
procedure
begin
procResult( Image ); // Dies sollte doch immer im MainThread ausgefuehrt werden,
// Egal wie tief verschachtelt ?
end
);
end;
end;
Rollo