if(thread) { thread->quit(); // указываем, что потоку нужно завершиться thread->wait(); // ждем завершения delete thread; // Удаляем thread = 0; // чтоб первый if сработал }