TThread - Sprawdzanie zamkniecia

0

Mam taki problem, że nie wiem, jak sprawdzić, czy thread został już zakończony, terminate nie widzę, bo chyba jest zadeklarowany jako protected, a ja chce to zobaczyć spoza danej klasy. I wątek jest zamykany po wykonaniu, FreeOnTerminate jest ustawione na true. Jakieś pomysły?

0

Nie wiem czy dobrze kombinuję, ale jeżeli masz fizyczny dostęp do kodu wątku, to ja bym na początku dał w
kodzie jakąś zmienną typu boolean na False, a jako ostatnie polecenie w wątku ustawił ów zmienna na True i
w ten sposób bym wiedział kiedy na pewno wątek się skończył. Ale może ktos tu, będzie miał lepszy pomysł.

0

To dość skompilokowany wątek, ma wiele zakończeń... więc wolałbym coś prostszego... najlepiej jakąś wartość która jednoznacznie określi czy wątek się skończył.

0

WaitForSingleObject lub wysyłaj z wątku komunikat do okna głównego po zakończeniu. Możesz to wyłączyć FreeOnTerminate (które generalnie na True ustawia się wtedy jak masz w dupie kiedy wątek sie skończy) i wykorzystać zdarzenie OnTerminate.

b

0

jeśli potrzebujesz takiej wiedzy to znaczy, że masz gdzieś błąd logiczny.
Napisz do czego Ci taka wiedza jest potrzebna to się coś pomyśli.

BTW może i masz "wiele zakończeń" ale i tak ZAWSZE (pomijam sytuację, kiedy wątek rzuci AV albo zostanie ubity po chamsku) kończy się na end; metody Execute :P

0

Dzięki za pomoc, okazało się, że po prostu źle czytałem wartość terminated, która jest publiczna... :D .

1 użytkowników online, w tym zalogowanych: 0, gości: 1