Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Threads!? Wie geht das? (https://www.delphipraxis.net/65724-threads-wie-geht-das.html)

Neuni 20. Mär 2006 16:25


Threads!? Wie geht das?
 
Hi,
also da ich verdammt lange kein Delphi mehr gemacht habe (mit PHP kann man mehr Geld machen ;) ), brauch ich mal wieder ein bisschen Hilfe.

Also ich hab n Timer der alle 2 Sekunden einen String vom Server holt per idhttp.get.
Nun hackt das ein bisschen wenn ich den holen lasse. Grade bei einer langsameren Internetanbindung nicht so toll ;)

Nun gibts da ja die wunderbaren Threads, wobei allerdings kein beispiel oder tut bei mir funktioniert :)

Hat vielleicht Jemand so ein Idiotensicheres Beispiel wie ich das mache?
Brauch Delphi eigendlich so gut wie nie in letzter Zeit deshalb hab ich auch nicht die Lust/die Zeit mich da groß einzulesen. Nervt halt nur n bisschen wenn alles alle 2 sek. hängt ;)

Danke schonmal.

konda 20. Mär 2006 16:27

Re: Threads!? Wie geht das?
 
Vielleicht hilft dir das Thread-Tutorial auf Luckie Thread Tutorial :P

ichbins 20. Mär 2006 16:28

Re: Threads!? Wie geht das?
 
oder du schaust dir Luckies Ping-Programm (Open-Source) an, das gerade auch hier läuft ;) LuckiePing

Neuni 20. Mär 2006 16:30

Re: Threads!? Wie geht das?
 
Hmm...ja.
Nur müsste ich da 45 Seiten lesen (anders gehts ja nicht wegen dem Zusammenhang).
Und die zeit hab ich leider im Moment nicht. (Auch wenn ich sie gerne hätte :? )

Edit: Ach der Luckie macht aber immer alles nonVCL. (der hat ja auch n Plan von Delphi ;) )

Edit II: Was is denn mit diesem idthreadmanager und co?

Matze 20. Mär 2006 16:33

Re: Threads!? Wie geht das?
 
Hi

Dann bemühe eben die Suche, da findest du wirklich sehr viel, u.a. auch schöne Beispiele, wie dieses hier.

Neuni 20. Mär 2006 17:04

Re: Threads!? Wie geht das?
 
hey...es geht :)
Also der thread anscheinend.

Nun hab ich das mal kopiert und mein Zeugs eingefügt: (Kleiner ausschnitt)
Delphi-Quellcode:
procedure TGetRemoteVersionThread.UpdateCaption;
var new:string;
begin
  with Form1 do
  begin

///


//chat.Lines.Clear;

new := idhttp1.Get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getchat'+'&casenick='+casenick+'&lastid='+lastid);

new := StringReplace(new, '###', #13#10, [rfReplaceAll]);

if (new = '') OR (new = ' ') then begin

end else begin
chat.Lines.Add(new);
end;

lastid := idhttp1.Get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getlastid'+'&casenick='+casenick);

///

  end;
end;

// =============================================================================
procedure TGetRemoteVersionThread.Execute;
begin

      Synchronize(UpdateCaption);

end;


////////////////////////////////////////////////////////////////////

procedure TForm1.Timer2Timer(Sender: TObject);
var
  Thread: TGetRemoteVersionThread;
begin

  Thread := TGetRemoteVersionThread.Create(True);
  Thread.FreeOnTerminate := True;
  Thread.Resume;


end;
Er macht zwar das Update...aber es hackt immer noch alle 2 sek. :(

glkgereon 20. Mär 2006 17:06

Re: Threads!? Wie geht das?
 
wie wäre es wenn du einmal den thread erstellst und der alle 2 Sekunden von selbst abruft?

erscheint mir logischer...

pacman1986 20. Mär 2006 17:07

Re: Threads!? Wie geht das?
 
oder terminier den thread ...
du erstellst ihn aber er bleibt im Arbeitsspeicher mach das ma ne 1/2 std je nachdem wie groß dein thread ist kann das ziemlich merkwürdig enden

Neuni 20. Mär 2006 17:09

Re: Threads!? Wie geht das?
 
Und wenn mir jetzt noch einer sagt wie wär ich euch echt dankbar.

PS: Aber verursacht das das hacken des Programms?

pacman1986 20. Mär 2006 17:12

Re: Threads!? Wie geht das?
 
das darf eigentlich nicht passieren..
hängt jedoch von deinem thread ab

Delphi-Quellcode:
Thread.Terminate;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.
Seite 1 von 3  1 23      

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