AGB  ·  Datenschutz  ·  Impressum  







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

iOS Threading unter Seattle

Ein Thema von junglist · begonnen am 20. Jan 2016 · letzter Beitrag vom 20. Jan 2016
Antwort Antwort
junglist

Registriert seit: 21. Jul 2015
Ort: Schweiz
36 Beiträge
 
Delphi 11 Alexandria
 
#1

iOS Threading unter Seattle

  Alt 20. Jan 2016, 12:29
Mal wieder Hallo zusammen

Seit Seattle (also nicht iOS 9.2 verantwortlich denke ich, weil es mit XE8 funktioniert hat) kann ich unter iOS Threads nicht mehr gescheit einsetzen.

So in etwa wird die Prozedur aufgerufen, um einen Webservice zu konsumieren und dann die Daten in eine DB zu packen.
Code:
procedure Form1.Button1Click(Sender:TObject);
var
cn:=Connection;
begin
cn.loadData('thisnthat')
end;
In "loadData" sind dann der WebService und DB-Zeug in einem
Code:
TThread.CreateAnonymousThread(procedure()
begin.
  //Webservice und DB-Zeuch
end).Start;
drinnen.

Ansonsten ist nur TfgActivityDialog noch drin.
Ich habe mal versucht die Sachen in der Prozedur auszukommentieren, egal ob ich jetzt den WebService, DB-Zeug oder den ActivityDialog auskommentiert habe, freezet die App immer nach dem Thread.

Ich weiss leider nicht mehr weiter, wenn ihr mehr Informationen braucht nur fragen.
Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: iOS Threading unter Seattle

  Alt 20. Jan 2016, 13:10
Und der TfgActivitiyDialog kann das nicht auch verursachen?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
junglist

Registriert seit: 21. Jul 2015
Ort: Schweiz
36 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: iOS Threading unter Seattle

  Alt 20. Jan 2016, 13:36
Oh man.. Ich habe zwar oben schon geschrieben, dass ich auch schon versucht habe diesen auszukommentieren, aber da ich ja n Vollhorst bin hab ich eine Zeile vergessen..

Ja, scheint da dran zu liegen.. Tut mir jetzt leid hier überhaupt n Thread eröffnet zu haben, manchmal entgehen einem ein paar Sachen wenn man 1-2 Tage am gleichen Problem arbeitet



Jetzt ist mein Problem nur noch dass ich eine Anzeige brauche um dem User zu erklären, dass eine Operation ausgeführt die etwas länger benötigt, das TfgActivityDialog war bis jetzt das einzige das ich kannte.. Was hätte ich sonst noch für Optionen?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: iOS Threading unter Seattle

  Alt 20. Jan 2016, 15:17
Du baust dir eine Klasse, die diese Tasks verwaltet.

Nur mal ganz grob skizziert:
Delphi-Quellcode:
type
  IReportProgress = interface
    procedure Progress( PercentProgress : Integer ); overload;
    procedure Progress( PercentProgress : Integer; const Info : string ); overload;
  end;

  TBackgroundRunner = class
  public
    // Diese Methoden werden nacheinander in einem Task abgearbeitet
    // Beim Beenden wird der Callback ausgeführt
    // Im Callback-Argument liegt bei einer aufgetretenen Exception die Exception
    procedure Execute( AProc : TProc; OnFinishCallback : TProc<TObject> ); overload;
    // Diese Methode kann über den Fortschritt berichten
    // Beim Aufruf müssen wir also eine ProgressInstanz mitgeben, die dann das
    // ProgressDialog-Fenster benachrichtigt
    procedure Execute( AProc : TProc<IReportProgress>; OnFinishCallback : TProc<TObject> ); overload;
    property OnStart : TNotifyEvent; // Ein Progress-Dialogfenster anzeigen
    property OnFinish: TNotifyEvent; // Das Progress-Dialogfenster wieder ausblenden
  end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 04:16 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