Ich hatte es aus diversen Dokus und HowTos so herausgelesen, dass die CriticalSections "so global" sein müssen, dass alle Threads die selbe CriticalSection Instanz verwenden können.
Im globalen Scope machen das auch viele, aber nicht alle...
Bei der Joblist beispielsweise ist doch sichergestellt, das alle Threads mit der einen "FCS Instanz" in der Jobliste arbeiten.
Der hier macht es genauso.
http://delphihaven.wordpress.com/code/tsimplethreadedqueue-variants/
Schweres Thema ..
PS:
Zitat:
Bei der Joblist beispielsweise ist doch sichergestellt, das alle Threads mit der einen "FCS Instanz" in der Jobliste arbeiten.
... vorausgesetzt, man greift nur über die "abgesicherten" Methoden auf die Joblist zu.
Ein "externes"
MyJoblist.add(...);
darf narürlich nicht sein.
PS v2:
Die Ursache meiner Dead-Locks habe ich Dank Sebastian Jänicke völlig unerwartet gefunden
http://www.delphipraxis.net/1137912-post3.html
Nun ist nur nich die Frage übrig, ob ist die CriticalSections richtig benutze?