Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateThread (https://www.delphipraxis.net/22302-createthread.html)

CReber 15. Mai 2004 18:42


CreateThread
 
Code:
procedure ping(Item:integer);
  var ip:string;
      i:integer;
begin
  ip:=Form1.ListView1.Items[Item].SubItems[0];
  if PortPresent(ip,80)=True then
    Form1.ListView1.Items[Item].SubItems[1]:='Online'
  else
    Form1.ListView1.Items[Item].SubItems[1]:='Offline'
end;


procedure TForm1.Button3Click(Sender: TObject);
  var i:integer;
      id:dword;
begin
  for i:=0 to ListView1.Items.Count-1 do
    begin
      CreateThread(nil,0,addr(ping),nil,0,id);
    end;
end;
wie kann ich einen parameter übergeben bei der CreateThread Funktion? In meinem schlauen Büchlich steht mit einem Pointer auf die Variable aber mit

CreateThread(nil,0,addr(ping),@Item,0,id);

funktioniert es trotzdem nicht ?! Need help ;)

Und wenn mir einer sagen kann wie ich einstellen kann das max. 15 Threads an sein sollen, wäre ich auch sehr erfreut ;))


für fehler und schrift, haftet der stift ! sry habs grad eilig ;)

Mirilin 15. Mai 2004 18:48

Re: CreateThread
 
:hi:

was allgemeines : Du solltest BeginThread anstelle von CreateThread verwenden.

Was funktioniert denn nicht? Sagt er was? ...

noch ein Link

mfg Tobias

MasterC 15. Mai 2004 18:49

Re: CreateThread
 
Warum verwendest du keine Thread Komponente? Ich benutze BMD Thread.

http://www.torry.net/vcl/system/thre...lphithread.zip

Luckie 15. Mai 2004 18:50

Re: CreateThread
 
Kuck dir mal mein Tutorial dazu an: http://tutorials.luckie-online.de Lad dir gleich das Zip-Archiv runter mit den Demos! Prinzip ist folgendes: Du übergibst einen Zeiger auf eine Record-Struktur.

Und dann lies bitte vorallem den Absatz:
Zitat:

Zitat von Luckie's Thread-Tutorial
In einem Delphi-Programm sollten sie nie die Funktion CreateThread direkt aufrufen. Benutzen sie stattdessen die
Funktion BeginThread. Grund: BeginThread kapselt zwar nur die API-Funktion CreateThread, setzt aber zusätzlich
noch die globale Variable IsMultiThread und macht somit den Heap thread-sicher.


Mirilin 15. Mai 2004 18:50

Re: CreateThread
 
:hi:

:shock: :gruebel: muss man denn für alles zu einer Komponente greifen ?

mfg Tobias

CReber 15. Mai 2004 18:51

Re: CreateThread
 
Ich will die Variable i übergeben ! Laut meinem Buch ist das der Argumenteparameter:

CreateThread(nil,0,addr(ping),nil,0,id);

da hab ich also @i reingeschrieben um, meinem verständnis zufolge, auf i hinzuweisen sodass diese übergeben wird. leider ist dann in der procedure Item leider immernoch 0 trotzdem ich beispielsweise eine 5 übergeben hab!

Ich habe eigentlich nciht vor jetzt wieder was anderes zu verwenden will endlich mal nach dem buch arbeiten ^^

Luckie 15. Mai 2004 18:53

Re: CreateThread
 
Was Mirilin und ich geschrieben haben, hast du aber gelesen?

CReber 15. Mai 2004 18:59

Re: CreateThread
 
löl ja klar ! aber dein tutorial ist kein tutorial sondern eher einer riesiger glossar der das verständnis ein wenig verbessern soll.. ich weiß immernoch nicht wie ich etwas bei threads übergeben kann! mit dem TThread Objekt erklärst du ja auch aber ich weiß ja wie es funktioniert aber nicht wie ich eine Variable übergebe...

PS: Und ob ich nun CreateThread oder BeginThread benutze is für mich völlig egal weil ich nur verstehen will wie das funktioniert ;)

Luckie 15. Mai 2004 19:09

Re: CreateThread
 
Zitat:

Zitat von hOnkibOnk
aber dein tutorial ist kein tutorial sondern eher einer riesiger glossar der das verständnis ein wenig verbessern soll..

Hallo? :gruebel: Wie darf ich denn das jetzt verstehen?

Aber die Demos hast du dir mal angekuckt? Insbesondere das Demo "ThreadTimes"?

CReber 15. Mai 2004 19:12

Re: CreateThread
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von hOnkibOnk
aber dein tutorial ist kein tutorial sondern eher einer riesiger glossar der das verständnis ein wenig verbessern soll..

Hallo? :gruebel: Wie darf ich denn das jetzt verstehen?

Aber die Demos hast du dir mal angekuckt? Insbesondere das Demo "ThreadTimes"?

Mmh wo gibs die ThreadTimes Demo? Bei mir ist sie nicht im Demo Ordner sondern nur die SortierDemo...

Das mit dem Glossar meine ich so das ein Leihe das nicht wirklich versteht sondern nur jemand der schon lange in der Materie drin ist... Viele Sachen sind einfach zu undeutlich erklärt. Das ist einfach meine Meinung ;) Steht alles drin wie es funktioniert müsste aber wenig bis gar keine Beispiele z.b. für die Aufrufe von Threads.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.
Seite 1 von 2  1 2      

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