Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Thread's & Signals? (https://www.delphipraxis.net/174856-threads-signals.html)

Mavarik 14. Mai 2013 15:25

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

jaenicke 14. Mai 2013 15:42

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. ;-)

Mavarik 14. Mai 2013 16:02

AW: Thread's & Signals?
 
Zitat:

Zitat von jaenicke (Beitrag 1215324)
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. ;-)

Super Danke für die Info...

Du hast nicht zufällig ein kleines Beispiel unter IOS? *liebguck*

Mavarik

jaenicke 14. Mai 2013 18:46

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.

Mavarik 15. Mai 2013 13:09

AW: Thread's & Signals?
 
Zitat:

Zitat von jaenicke (Beitrag 1215335)
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.

Danke... Kein hatte die Unit nicht direkt gefunden... "System.Syncobjs" :oops:

Mavarik

Mavarik 19. Mai 2013 17:22

AW: Thread's & Signals?
 
Zitat:

Zitat von jaenicke (Beitrag 1215335)
TEvent ist aber im Grunde genauso zu benutzen wie die API-Funktionen unter Windows.

Tja leider wird das momentan unter IOS nicht unterstützt und lößt eine manuelle Exception aus!

Ganz toll...

Mavarik

Furtbichler 20. Mai 2013 09:46

AW: Thread's & Signals?
 
Zitat:

Zitat von Mavarik (Beitrag 1215783)
...und lößt eine manuelle Exception aus!

... Was ist denn eine 'manuelle Exception'?

vagtler 20. Mai 2013 10:38

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.

Mavarik 20. Mai 2013 22:59

AW: Thread's & Signals?
 
Zitat:

Zitat von Furtbichler (Beitrag 1215813)
Zitat:

Zitat von Mavarik (Beitrag 1215783)
...und lößt eine manuelle Exception aus!

... Was ist denn eine 'manuelle Exception'?

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:
var
  E : TEvent;
begin
  E.SetEvent;
  // call dispatch_semaphore_signal(FEvent);
Mavarik

daywalker9 21. Mai 2013 06:17

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 22:32 Uhr.
Seite 1 von 2  1 2      

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