![]() |
Threadkommunikation auf den mobilen Plattformen
Hi,
ich nutze seit Jahren TThread und TThreadList für die Kommunikation zwischen mehreren Threads. Nun hab ich aber ein Problem mit dem Nextgen-Compiler. Grob umschrieben schaut meine Execute Funktion so aus:
Delphi-Quellcode:
Die Update-Funktion wird nur im Execute aufgerufen, FDoUpdate ist ein TEvent das im Fall einer Aktualisierung bzw. im Destruktor aufgerufen wird. Unter Windows geht das wie gesagt prima, nur auf IOS wird der Synchronize (oder Queue) Aufruf meist gar nicht gestartet, oder aber erst beim Terminieren der Klasse. Ich kann das umgehen, indem ich ein weiteres TEvent nutze und im Mainthread checke ob das gesetzt ist via Waitfor(0), aber das ist in meinen Augen gefriemelt. Hat das jemand schon einmal gegengetestet? Wie gesagt das Aufrufen der Sync oder Queue Routine geht oft, aber nicht immer unter iOS (mit XE5) und ich erkenne keinen Grund wieso das so ist.procedure TNetworkStreams.Execute; begin while not Terminated do begin if (FDoUpdate.WaitFor(INFINITE) = TWaitResult.wrSignaled) then begin if Terminated then break; Update(); Synchronize( procedure begin if assigned(FOnUpdate) then FOnUpdate(Self); end); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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