Delphi-PRAXiS
Seite 2 von 2     12   

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 23. Mai 2013 12:28

AW: Thread's & Signals?
 
Zitat:

Zitat von daywalker9 (Beitrag 1215856)
Das Create vom TEvent hast du aber drin oder hast den quelltext extrem gekürzt ?

Ja sorry... Ging mir nur um die Aufrufreihenfolge...

Im Simulator funktioniert es ja auch....

Mavarik

Mavarik 26. Jun 2013 18:05

AW: Thread's & Signals?
 
OK... Es geht doch...

Der Compiler akzeptiert zwar

Delphi-Quellcode:
var
  E : TEvent;
begin
  E := TEvent.Create;
  E.ResetEvent;
...
end;
Aber es funktioniert nur mit:

Delphi-Quellcode:
var
  E : TEvent;
begin
  E := TEvent.Create(NIL,true,true,''); // <---
  E.ResetEvent;
...
end;
Das war der Trick!

Grüsse Mavarik

Sir Rufo 27. Jun 2013 06:53

AW: Thread's & Signals?
 
Ich persönlich finde es ja schicker, wenn der Event sich selbst zurücksetzt.

Dann reicht
Delphi-Quellcode:
var
  E : TEvent;
begin
  E := TEvent.Create( nil, False, False, '' );
  while not Terminated do
  begin
    E.WaitFor;
  end;
end;

Mavarik 27. Jun 2013 13:15

AW: Thread's & Signals?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1219847)
Ich persönlich finde es ja schicker, wenn der Event sich selbst zurücksetzt.

Ist glaube ich Geschmacksache.

Ich mache es lieber so...

Delphi-Quellcode:
  while GetAdresse and not Terminated do
    begin
      E.ResetEvent;

      Akt := GetTickCount;
      Waiter := Akt - LastTick;
      LastTick := Akt;

      if Waiter < 1000 then  
        Sleep(1000-Waiter);

      FGeocoder.Geocode(Address); // 1x pro Sekunde

      R := E.WaitFor(15000);
      case R of
        wrSignaled    : begin
                           Synchronize(Process);
                           if fAbort then
                             begin
                               Error := -8;
                               break;
                             end;
                         end;
        wrTimeout     : begin
                           Error := -4;
                           break;
                         end;
        wrAbandoned   : begin
                           Error := -5;
                           break;
                         end;
        wrError       : begin
                           Error := -6;
                           break;
                         end;
        wrIOCompletion : begin
                           Error := -7;
                           break;
                         end;
      end;
    end;
Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.
Seite 2 von 2     12   

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