Originariamente inviato da neryo
ho notato che la funzione CloseHandle() non riesce a chiudermi un thread...
Infatti serve solo per chiudere l'handle di un certo oggetto (thread, file, mutex, ecc...).

Originariamente inviato da neryo
ho usato TerminateThread() che da quello che ho capito è molto più drastica e sarebbe meglio non utilizzarla
Sì, è pericolosa ed è preferibile non usarla. La soluzione ideale è che il thread termini "naturalmente" cioè quando la funzione principale del thread termina o quando si chiama (nel thread) ExitThread() (che è chiamata anche implicitamente alla fine della funzione).

La domanda quindi è: cosa fa a livello pratico il tuo thread? C'è la possibilità che nel tuo thread ogni tanto ci si possa chiedere "devo terminare?" testando ad esempio una qualche variabile?