Einzelnen Beitrag anzeigen

treepwood

Registriert seit: 26. Mai 2008
5 Beiträge
 
#3

Re: Problem mit 2 Threads und CPU-Auslastung

  Alt 27. Mai 2008, 16:14
Zitat von sirius:
Du hast schon richtig geahnt, die Threads blockieren sich gegenseitig.
Der Speichermanager stellt sicher, dass nur ein Thread gleichzeitig auf ihn zugreift. Wobei ich jetzt nicht weis, was setlength mit einem shortstring macht.

btw.: Du solltest die ThreadProc (Haenge) mal mit einem 32-bit-Parameter und als stdcall deklarieren.

Die Frage ist nur, warum blockieren sich die Threads gegenseitig ?
Jeder Thread sollte seinen eigenen Heap mit eigenem String haben.
Kann es sein, daß der Speicher von den Thread geteilt wird ?

Mit Long/Huge-String passiert das Gleiche wie bei shortstring oder Ansistring.
Jeglicher Zugriff auf den Speicher mit z.B. Pchar; getmem(P, 100);...
verursacht das selbe Problem, auch ohne SetLength

ich habe den Prozedurkopf wie folgt geändert:
procedure haenge (param_nicht_verwendet :longint); stdcall; leider bleibt das Ergebnis gleich.
  Mit Zitat antworten Zitat