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?
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ł.
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ł.
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
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
Dzięki za pomoc, okazało się, że po prostu źle czytałem wartość terminated, która jest publiczna... :D .