Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: TThread: MainThreadsynchronisation ohne Synchronize
4. Sep 2008, 21:55
Das ist aber nicht ungefährlich, was du da machst. Thread A startet Thread B. Thread B hlät Thread A in einer CriticalSection an, denn Thread B weiß ja nicht, was Thread A gerade macht. Wenn jetzt andere darauf warten das Thread A die CritialSection verlässt, kann das zu Performanceeinbußen führen. Aber richtig schlimm wird es, wenn Thread B abstürzt und Thread A nicht mehr startet. Dann hängen alle Threads, die auf das Freigeben der CriticalSection warten.
Deswegen sollte man es vermeiden einen Thread von aussen anzuhalten. Ein Thread sollte nur sich selber anhalten oder beenden. Meist löst man dass so, dass man ein Flag setzt, welches vom Thread regelmäßig abgefragt wird.
Michael Ein Teil meines Codes würde euch verunsichern.
|