AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CreateThread

Ein Thema von CReber · begonnen am 15. Mai 2004 · letzter Beitrag vom 4. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#11

Re: CreateThread

  Alt 15. Mai 2004, 20:59
hi,
luckie meinte sein demo, nicht das von delphi!
die function muss so aussehen:
Delphi-Quellcode:
function threadfunc(p: pointer): [rückgabetyp];
var variable: integer;
begin
  variable := integer(p);
end;
und dann der aufruf mit @i!
  Mit Zitat antworten Zitat
nico42
(Gast)

n/a Beiträge
 
#12

Re: CreateThread

  Alt 26. Mai 2004, 10:43
Delphi-Quellcode:
function threadfunc(p: pointer): [rückgabetyp]; stdcall;
var variable: integer absolute p;
begin
  ...
end;
So geht's auch, da spart mann sich eine Zuweisung. Bei "absolute"
sollte man aber schon wissen, was man tut

Ach ja, normalerweise sollte man Callback-Funktionen IMMER mit
stdcall deklarieren. Das funktioniert hier nur ausnahmsweise
ohne weil die threadfunc nur einen Parameter hat...

Grüße,

Nico
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: CreateThread

  Alt 26. Mai 2004, 15:12
Wenn du den Thread mit BeginThread startest, dann darfst du die Thread-Funktion nicht als stdcall deklarieren. Das macht der Wrapper BeginThread schon.

Zitat:
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.
Hm, ich war eigentlich der Meinung, dass ich es verständlich erklärt hätte. Dass es sich nicht an einen Delphianfäger richtet dürfte klar sein.

Zitat:
Steht alles drin wie es funktioniert müsste aber wenig bis gar keine Beispiele z.b. für die Aufrufe von Threads.
Was meinst du, warum ich fast zu jedem Kapitel ein Demo dazu gemacht habe? Wenn man natütlich nicht in der Lage ist sich das runterzuladen:
Zitat von Homepage:
Threads_mit_Delphi.pdf 21-Feb-2004 02:40 371k Thread Tutorial für Delphi. Version 2.0 [PDF]
Threads_mit_Delphi.zip 21-Feb-2004 02:41 393k Thread Tutorial für Delphi. Version 2.0 [PDF und Demos]
Dann kann ich auch nicht mehr helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
pmpch

Registriert seit: 13. Okt 2005
1 Beiträge
 
#14

Re: CreateThread

  Alt 13. Okt 2005, 10:49
Ich hatte dasselbe Problem, habe aber rausgefunden worans liegt. Die Funktion 'ping', die den Callback erhält, muss als stdcall definiert werden, sonst kriegt man undefinierbare Werte für 'Item' zurück. In meinem Fall war es immer 0!!

mfg
pmpch

p.s. Da ich neu bin halt ich mich lieber etwas zurück, trotzdem möchte ich kurz etwas erwähnen. Wenn jemand ein Frage zu CreateThread hat, weil er genau diese Funktion benutzen will, dann zwingt ihm doch nicht was anderes auf. Ich benütze auch diese API-Funktion direkt, da die ganzen Klassenaufrufe meinen Code nur unnötig verschalteln. Jeder hat seine Gründe.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#15

Re: CreateThread

  Alt 13. Okt 2005, 13:19
Zitat von pmpch:
Da ich neu bin halt ich mich lieber etwas zurück, trotzdem möchte ich kurz etwas erwähnen. Wenn jemand ein Frage zu CreateThread hat, weil er genau diese Funktion benutzen will, dann zwingt ihm doch nicht was anderes auf. Ich benütze auch diese API-Funktion direkt, da die ganzen Klassenaufrufe meinen Code nur unnötig verschalteln. Jeder hat seine Gründe.
BeginThread hat aber nichts mit Klassen zu tun. Es ist eine einfache Funktion, nicht mehr (nix Methode also).
Ich persönlich benutze auch kaum BeginThread, weil ich lieber GlobalAlloc() usw. verwende. Wenn man den Delphi-Speichermanager verwendet sollte man aber wirklich BeginThread benutzen, auch wenn ich das selber vermutlich nicht in allen meinen Programmen konsequent gemacht habe.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#16

Re: CreateThread

  Alt 4. Apr 2007, 23:47
Schon alt aber immer noch aktuell
Deshalb lehne ich mich hier nochmal an..

Ich benutze ebenfalls CreateThead in meiner DLL da sich die Winamp Plugins mit BeginThread
nicht oder ungenügend ansprechen lassen.

Beendet wird der Thread nach dem entladen 'Freelibrary' mit ExitThread(0).

Nun weiß ich aber nicht ob der Thread tatsächlich beendet ist
da ich bei einigen Plugins nach 2>3 maligen start die meldung bekomme 'unable register windowclass'
Bin jetzt etwas ratlos wie ich prüfen kann woran das liegt oder warum es auftritt.

Die vermutung!
Der Thread wurde nicht beendet ,Dll nicht richtig entladen was anderes fällt mir sonst nicht ein.

Hätte da jemand eine Idee?

Edit: Hat sich erledigt

Gruss Emil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.
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