AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kamera App Thread Ftp Uplaod

Ein Thema von oakley · begonnen am 3. Mai 2022 · letzter Beitrag vom 6. Mai 2022
Antwort Antwort
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#1

AW: Kamera App Thread Ftp Uplaod

  Alt 4. Mai 2022, 17:58
Könntest Du mir bitte noch sagen, wie sich das mit dem Execute verhält?

Delphi-Quellcode:
type
  TMyThread = class(TThread)
  public
    ----> Hier habe ich meine FTPUpload Prozedur eingefügt
    procedure FTPUpload;
    procedure Execute; override;
  end;

var
  MyThread: TMyThread;

procedure TMyThread.Execute;
begin
  FTPUpload; //beim Ausführen des Threads soll die Uploadfunktion ausgeführt werden.
  // wenn man was "endlos" im Hintergrund abarbeiten will
  ---- > ich will nichts endlos ausführen
end;
Wenn ich auf den Auslöser drücke wird ein JPG erzeugt (fname = Dateiname):
TFile.WriteAllBytes(TPath.Combine(TPath.GetPublicP ath, fname + '.jpg'), Data);

Und direkt danach habe ich den Code:

Delphi-Quellcode:
  MyThread := TMyThread.Create;
  MyThread.FreeOnTerminate := true;
  MyThread.Terminate;
Wo wird MyThread.Execute aufgerufen? Passiert das automatisch onCreate?

LG

Mirko

Geändert von oakley ( 4. Mai 2022 um 18:01 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Kamera App Thread Ftp Uplaod

  Alt 5. Mai 2022, 07:52
.. der Thread startet sofort, wenn der Thread nicht mit dem CreateSuspended = true Parameter aufgerufen wird.

MyThread.Terminate ist meines Wissens nicht notwendig, da der Thread automatisch terminiert wenn der Executeblock abgearbeitet wurde.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
151 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Kamera App Thread Ftp Uplaod

  Alt 5. Mai 2022, 08:09
Wenn du einen ganz einfachen Thread haben möchtest, der nicht viel mehr als den Upload machen solll, dann kannst du auch einen anonymen Thread verwenden:
Delphi-Quellcode:
  TThread.CreateAnonymousThread(procedure
  begin
    FTPUpload;
  end).Start();
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Kamera App Thread Ftp Uplaod

  Alt 5. Mai 2022, 08:34
Wäre ggf. auch eine gute Anwendung für System.Threading?

Delphi-Quellcode:
TTask.Run(
  procedure
  begin
    FTPUpload;
  end);
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#5

AW: Kamera App Thread Ftp Uplaod

  Alt 5. Mai 2022, 11:31
Ich benutze fast immer die Unit AnonThread.pas aus den Delphi samples. Wie hier beschrieben:
https://community.embarcadero.com/bl...tification-127
Delphi-Quellcode:

  //TAnonymousThread findet sich in anonthread.pas in den Delphi Samples.
  TAnonymousThread<TMyResultRecord>.create(
  Function:TMyResultRecord// Alles was parallel im hintergrund passieren soll
  Begin
    Result.worked := false;
    Result.Filename := LastSavedFile;
    DoFTPUpload(Result.Filename);
    Result.worked := true;
  End
  ,
  Procedure (res:TMyResultRecord)// Was passieren soll wenn der Thread fertig ist
  Begin
    if Res.Worked then
      ShowSyncedMessage('Upload von '+ res.filename+' erfolgreich!'  );
  End
  ,

  Procedure (e:Exception) // Was passieren soll wenn der Thread mit einer Exception endete.
  Begin
    ShowSyncedMessage( 'FTP UPLOAD Thread:'+e.message );
  End
  );
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#6

AW: Kamera App Thread Ftp Uplaod

  Alt 5. Mai 2022, 16:22
.. der Thread startet sofort, wenn der Thread nicht mit dem CreateSuspended = true Parameter aufgerufen wird.

MyThread.Terminate ist meines Wissens nicht notwendig, da der Thread automatisch terminiert wenn der Executeblock abgearbeitet wurde.

Grüße
Klaus
Richtig. Das hab' ich nur zur Illustration eingebaut wie man was länger laufendes mit Schleife im Thread behandeln kann.
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#7

AW: Kamera App Thread Ftp Uplaod

  Alt 6. Mai 2022, 16:25
Danke für die vielen Anregungen. Ich habe es bis dato einfach hiermit gemacht und es funktioniert wie gewünscht.

Delphi-Quellcode:
TTask.Run(
  procedure
  begin
    FTPUpload;
  end);
Ich wollte den Upload eigentlich in einen Service verlegen, der dann im Hintergrund mitläuft aber unter Android 12 habe ich damit noch ein Problem.
Die App schließt sich unvermittelt, sobald der Service gestartet werden soll.
Irgendwas scheint da generell schlief zu laufen, denn das gleiche macht er auch bei der Notification Demo.

LG

Mirko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz