Forum: Object-Pascal / Delphi-Language
Delphi
by sirius,
30. Jan 2010
Das ist die Grenze für schlafende Threads. Gleichzeitig laufen sollten aber maximal 16.
Forum: Object-Pascal / Delphi-Language
Delphi
by sirius,
29. Jan 2010
Ah, ok. Aber du kannst doch gleich den Pointer auf den Record übergeben:
type
PMyThread = ^TmyThread;
TMyThread = record
InUse :Boolean;
FormHandle :THandle;
Text :String;
..... usw.
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by sirius,
29. Jan 2010
Da steht aber nur index. Und wo ist die Variable index deklariert?
Forum: Object-Pascal / Delphi-Language
Delphi
by sirius,
29. Jan 2010
Zu dem Unterschied CreateThread und Beginthread ist das alles.
Zu deiner Vorgehensweise hat ja Astat schon was gesagt (bzw. wie man es besser machen sollte). Wenn du es so beibehälst, kann ich dir zumindest sagen, dass an der Übergabe des Index etwas falsch ist. Du übergibst einen Pointer auf eine (möglicherweise sogar lokale) Variable, welche womöglich beim Start des threads gar nicht mehr...
Forum: Object-Pascal / Delphi-Language
Delphi
by sirius,
29. Jan 2010
Nie CreateThread benutzen (zumindest bis D2006)! Nimm BeginThread!
BeginThread macht auch nix weiter als CreateThread aufzurufen und den Speichermanager darüber zu informieren, dass er jetzt bei der Speicherreservierung mit CriticalSections arbeiten muss. Und der zweite Teil ist extrem wichtig.
(Zudem muss deine ThreadProc jetzt nicht stdcall sein, sondern der Standard register reicht)