![]() |
Thread's & Signals?
Hallo Zusammen!
Normalerweise habe ich im Thread sowas wie "ResetEvent, Setevent und WaitForSingleObject" benutzt... Dafür habe ich mir per Mutex ein Handelt geholt! Wie geht das unter IOS? Mit Signals? Mavarik |
AW: Thread's & Signals?
TEvent aus der Unit SyncObjs sollte unter iOS und MacOS genauso funktionieren wie unter Windows. In der Unit sollte auch mehr zu finden sein in der Richtung.
Unter anderem auch TMutex, TSemaphore, TCriticalSection, ... alles Cross Platform. ;-) |
AW: Thread's & Signals?
Zitat:
Du hast nicht zufällig ein kleines Beispiel unter IOS? *liebguck* Mavarik |
AW: Thread's & Signals?
Ich habe leider keine angebissenen Äpfel zu Hause, ich kann es deshalb nicht wirklich testen, habe also auch keine konkreten Beispiele für iOS. Ich schaue mir nur regelmäßig die Quelltexte an, die bei Delphi dabei sind, und da sehe ich ja auch die diversen IFDEFs für andere Plattformen und merke mir das auch. ;-)
TEvent ist aber im Grunde genauso zu benutzen wie die API-Funktionen unter Windows. |
AW: Thread's & Signals?
Zitat:
Mavarik |
AW: Thread's & Signals?
Zitat:
Ganz toll... Mavarik |
AW: Thread's & Signals?
Zitat:
|
AW: Thread's & Signals?
Slightly OT: Bei den ganzen vorhandenen Einschränkungen und dann noch dieser unfertigen Firemonkey-Zwischenschicht frage ich mich wirklich, warum man - wenn man denn unbedingt Multi-Plattform-Unterstützung betreiben will - nicht auf etablierte Lösungen wie z.B. Xamarin zurück greift? Mal ganz abgesehen davon, dass für die allermeisten Fälle wahrscheinlich eine Hybrid-Lösung wie PhoneGap (a.k.a. Apache Cordova) o.ä. vollkommen ausreichen sein würde.
|
AW: Thread's & Signals?
Zitat:
Delphi-Quellcode:
{
procedure SignalConverter(ExceptionEIP: LongWord; FaultAddr: LongWord; ErrorCode: LongWord);
{$IFDEF CPUARM} begin raise GetExceptionObject(ExceptionEIP, FaultAddr, ErrorCode) at Pointer(ExceptionEIP); end; {$ENDIF CPUARM} RaiseSignalException is called from SignalConverter, once we've made things look like there's a legitimate stack frame above us. Now we will just create an exception object, and raise it via a software raise. } procedure RaiseSignalException(ExceptionEIP: LongWord; FaultAddr: LongWord; ErrorCode: LongWord); begin raise GetExceptionObject(ExceptionEIP, FaultAddr, ErrorCode); end; { SignalConverter is where we come when a signal is raised that we want to convert to an exception. This function stands the best chance of being called with a useable stack frame behind it for the purpose of stack unwinding. We can't guarantee that, though. The stack was modified by the baseline signal handler to make it look as though we were called by the faulting instruction. That way the unwinder stands a chance of being able to clean things up. }
Delphi-Quellcode:
Mavarik
var
E : TEvent; begin E.SetEvent; // call dispatch_semaphore_signal(FEvent); |
AW: Thread's & Signals?
Das Create vom TEvent hast du aber drin oder hast den quelltext extrem gekürzt ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 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