Dans ton thread secondaire, tu dois pouvoir mettre à jour régulièrement une variable globale (Attention à la gestion de la concurrence d'accès).
Dans ton thread principal, à l'aide d'un timer, tu peux lire périodiquement la variable globale. Si elle n'a pas été mise à jour depuis un certain temps, tu peux killer le thread avec
Terminatethread. Attention de bien lire la doc : c'est une fonction violente.
Tu peux aussi utiliser une solution plus élégante avec un thread supplémentaire qui attend des
évènements émis par le thread de lecture. Le thread attendant le thread de lecture utiliserais
WaitForSingleObject, avec un timeout. En sortie de cette fonction, tu regardes si la cause de sortie est le timeout ou l'évènement. Si c'est l'évènement, tu boucle sur ton
WaitForSingleObject. Si c'est le timeout, c'est que le thread de lecture n'a pas déclenché d'évènement depuis un moment -> tu le kill.