Dans un programme Windows avec deux threads : thread1
y thread2
.
Quand thread1
est bloqué dans l'appel fread(buffer, 1, 10, stdin)
en attendant les commentaires, est-il possible de faire quelque chose à partir de thread2
pour forcer fread
pour revenir ?
Jusqu'à présent, j'ai essayé d'appeler fclose(stdin)
de thread2
mais cela ne semble pas fonctionner. Le programme reste bloqué à l'étape fclose
jusqu'à ce qu'une entrée soit disponible dans le champ stdin
flux.
Ce que j'essaie de faire, c'est de terminer thread1
avec élégance au lieu de le tuer avec TerminateThread
parce qu'il y a du travail que thread1
doit faire à la fin.
Un autre élément à prendre en compte est que stdin
est une extrémité d'un tuyau nommé. Je n'ai pas le contrôle du programme à l'autre bout du tuyau.
Ce dont j'ai besoin, c'est de déconnecter mon programme de son extrémité du tuyau ( stdin
dans ce cas).