Forum: Object-Pascal / Delphi-Language
by himitsu,
11. Okt 2012
Darum ist Execute auch eigentlich als Protected deklariert (strict protected wäre aber besser), damit man eigentlich garnicht erst nicht auf die Idee kommen sollte, dieses von außen direkt aufrufen zu wollen. :angle2:
Forum: Object-Pascal / Delphi-Language
by himitsu,
5. Okt 2012
Man könnte sich noch vor und nach die Schlaf-Schleife eine Variable platzieren, über welche man extern abfragen kann, ob der Thread grade arbeitet.
z.B. ein LongBool (nach LongInt gecastet), welcher über InterlockedExchange gesetzt wird. Und abfragen kann man ihn direkt, über ein ReadOnly-Property. (Lesezugriffe sind dort threadsave)
Forum: Object-Pascal / Delphi-Language
by himitsu,
5. Okt 2012
Man legt Threads eben nicht mit Suspend lahm. :warn:
Wenn du das nicht mehr machst, dann hat sich dieses Problem automatisch gelöst.
Der Thread befindet sich dadurch in einem unsicheren Zustand, er könnte sogar das ganze Programm lahmlegen, wenn man ihn z.B. anhält, wärend er grade was im MemoryManager erledigt und dadurch die Sperre nicht mehr freigegeben wird.
Und wenn man ihn nun auch...