TUpdateThread потомок TThread.
Создаю поток, который в фоновом режиме должен выполнить определенные действия, а потом сам уничтожится.
TUpdateThread *Modem;
...
Modem = new TUpdateThread(true);
Modem->FreeOnTerminate = true;
Modem->Resume();
Как понять выполняется ли этот поток в данный момент или уже завершился и удалился? Проверка на NULL ни к чему не приводит. При завершившемся потоке, свойвства потока не доступны.