Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   TThread bei Android (https://www.delphipraxis.net/192795-tthread-bei-android.html)

sko1 19. Mai 2017 10:23

TThread bei Android
 
Hallo,

da die Mailabholung und Weiterverarbeitung bei mir recht lange dauert und Android dann schon der Meinung ist, die App reagiert nicht mehr, habe ich das Ganze in einen Thread ausgelagert.

Der Thread wird mit
Delphi-Quellcode:
 
   Thread := TThreadMail.Create(false);

nach Erzeugung sofort gestartet, unter Windows alles bestend, unter Android springt er gar nicht erst ins Thread.Execute!
Daher habe ich zusätzlich ein Thread.Start; eingebaut, mit der Fehlermeldung unter Windows dass ein gestarteter Thread nicht noch mal gestartet werden darf (eigentlich logisch), aber unter ASndroid läuft der Thread nun auch los.

Behelfslösung ist nun:
Delphi-Quellcode:
   Thread := TThreadMail.Create(false);
{$IFDEF ANDROID}
    Thread.Start;
{$ENDIF}

Aber warum startet der unter Android nicht von allein? Ein Testthread mit einer Zählschleife läuft sofort los, der eigentliche Mailthread aber nicht!

Wo könnte ich anfangen zu suchen?

Ciao
Stefan

SebastianZ 19. Mai 2017 11:10

AW: TThread bei Android
 
Eventuell hast du im Creator des Mail-Threads etwas drin, dass Probleme macht?

Mein Vorgehen wäre hier:
> Original Sourcen des Mailthreads sichern
> Einzelne Teile des Mailthreads nach und nach kommentieren und sehen ab wann er läuft.
Falls er ab einem gewissen Punkt korrekt gleich läuft, dann weißt du, welche Sourcen im Thread die Probleme verursachen.

sko1 20. Mai 2017 08:25

AW: TThread bei Android
 
Im Creator des Threads ist gar nichts vorhanden, es gibt neu den Execute!

Und wenn es einen Creator gäbe, warum startet der Thread dann und arbeitet fehlerfrei nach Thread.Start ?

Ciao
Stefan

SebastianZ 22. Mai 2017 15:36

AW: TThread bei Android
 
Zitat:

Zitat von sko1 (Beitrag 1372136)
Im Creator des Threads ist gar nichts vorhanden, es gibt neu den Execute!

Und wenn es einen Creator gäbe, warum startet der Thread dann und arbeitet fehlerfrei nach Thread.Start ?

Ciao
Stefan

Da ich deine Sourcen nicht kenne war das eine Vermutung.
Irgend ein unterschied zwischen dem "Zählthread" und dem Mailthread muss bestehen, sonst würden beide gleich starten.
Daher mein Vorschlag mit dem Auskommentieren.

Da ich weder weiß wie dein Thread aufgebaut ist, noch welche Technik/ Schnittstellen du verwendest kann ich hier nicht mehr sagen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz