AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ios kein Multitasking...

Ein Thema von Mavarik · begonnen am 19. Mai 2013 · letzter Beitrag vom 22. Mai 2013
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.123 Beiträge
 
Delphi 10.3 Rio
 
#1

ios kein Multitasking...

  Alt 19. Mai 2013, 22:06
Hallo!

Nachdem die SyncObj unter iOS noch nicht implementiert sind... Also ein Timer...

Aber...

Beispiel:

Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  Memo1.Lines.add('Hier bin ich');
end;

procedure TForm2.Button2Click(Sender: TObject);
var
  i : Integer;
begin
  Timer1.Enabled := true; // eine Sekunde...

  for i:=0 to 1000 do
    begin
      Spinbox1.Value := i;
      Application.ProcessMessages;
      Sleep(100);
    end;
end;
Was Passiert?

Die Spinbox zählt genüßlich bis 1000 und dann kommt der Timercall!

Funktioniert unter IOS eigentlich irgend etwas so wie man es erwartet?

Mavarik
  Mit Zitat antworten Zitat
Littleben
(Gast)

n/a Beiträge
 
#2

AW: ios kein Multitasking...

  Alt 19. Mai 2013, 23:53
Funktioniert unter IOS eigentlich irgend etwas so wie man es erwartet?
Das frage ich mich auch andauernd...

Bei der Suche wegen meinem TAniIndicator-Problem bin ich auf folgenden beitrag gestoßen: https://forums.embarcadero.com/threa...threadID=66281
Dort wird gesagt, dass Application.Processmessages unter MacOS nichts auswirkt. Wahrscheinlich unter iOS auch nicht.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: ios kein Multitasking...

  Alt 20. Mai 2013, 02:06
Das hat mit Multitasking vermutlich wenig zu tun. iOS nutzt halt einfach kein Messaging-System wie Windows. Ich bin mir nichtmals sicher - mangels Erfahrung - ob unter Macs ein Timer (von "ProcessMessages" mal ganz abgesehen) in dieser Form überhaupt abbildbar wäre. Wieder ein Grund, warum ich "one source, all platforms" wenn nicht für naiv, zumindest für in der Praxis an sehr viele Bedingungen geknüpft halte. Es wäre sicherlich ein schöner Traum, der in Grenzen auch mit vielen Kosten teilweise machbar ist, aber am Ende ist nativ entwickelt einfach so, wie es gedacht war.

Ausser, man hat eine Mediationsschicht, die minuziös "nativisiert" wo nötig. Das wird universell aber kaum gehen, zumindest gibt es Nischenlösungen für einzelne Zwecke. Unitiy für Spiele o.Ä. Lasset die Unkenrufe kommen, aber am Ende sind unterschiedliche System einfach... naja, unterschiedliche Systeme.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.123 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: ios kein Multitasking...

  Alt 21. Mai 2013, 00:02
Tja..

Wann wann nutzen wir einen Timer?

Genau... Wenn wir nicht extra einen Thread programmieren wollen und uns das Synchronize sparen wollen...
Die Einschränkung, dass der Timerevent "nur" kommt, wenn die VCL 0 Task zeit hat.. Fein...

Aber unter IOS & FM3 funktiniert das eben nicht...

Threads aber auch nicht, da unter ios die Semapforen und Events nicht funktionieren...

Und jetzt?

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
647 Beiträge
 
#5

AW: ios kein Multitasking...

  Alt 21. Mai 2013, 13:11
Schon blöd. Aber da du in deinem obigen Besipiel ja auch Application.ProcessMessages verwendest, würde ich einfach an der Stelle eine Prozedur aufrufen und mir vorher GetTickCount merken. In der Prozedur prüfst du dann, ob x ms vergangen sind und führst ggf. deinen Code aus.
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#6

AW: ios kein Multitasking...

  Alt 21. Mai 2013, 17:06
Threads aber auch nicht, da unter ios die Semapforen und Events nicht funktionieren...
Threads und Events funktionieren doch?
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.123 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: ios kein Multitasking...

  Alt 21. Mai 2013, 20:26
Threads aber auch nicht, da unter ios die Semapforen und Events nicht funktionieren...
Threads und Events funktionieren doch?
Nur im Simulator nicht auf dem Device!

Mavarik
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#8

AW: ios kein Multitasking...

  Alt 21. Mai 2013, 21:46
Da muss ich dir widersprechen. Bei meinem Live-Ticker lade ich alle 30 Sekunden XML-Dateien in einem Thread herunter. Du darfst den Thread nur nicht gestoppt kreieren.
Die App im Simulator zu testen hab ich schon lang aufgegeben, denn wenn es dort funktioniert heißt es noch lange nicht, dass es auch auf dem Device funktioniert ^^
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
66 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ios kein Multitasking...

  Alt 22. Mai 2013, 00:10
Bei mir gehen Threads auch auf dem iPhone.

Im Anhang ein Beispiel
Angehängte Dateien
Dateityp: zip ThreadTest.zip (8,7 KB, 19x aufgerufen)
Thomas Levering
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.123 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: ios kein Multitasking...

  Alt 22. Mai 2013, 12:10
OK Nochmal...

Zu diesem Thema gibt es hier 2 Threads

Hier geht darum, dass ein Timer nicht aufgerufen wird, wenn die App nicht in die FMX 0-Task-Schleife kommt...
Also Zeit hat...

Application.Processmessages hilft hier auch nicht...

Der andere Thread ist hier

In diesem Thread geht es darum, das TEvents nicht unterstützt werden... Und somit keine Synchronisation zwischen Threads möglich ist...

@Thomasl Du Verwendest ja auch keine Signale... Logisch das einfache Threads funktionieren...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:47 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