【发布时间】:2016-04-27 20:16:37
【问题描述】:
我正在尝试终止在另一个线程的 ReadConsole() 调用中阻塞的线程。它不适用于 terminateThread(我知道这不是停止它的好方法),因为当重新启动该线程时,该线程仍然存在试图返回 ReadConsole()。我也尝试从另一个线程设置一个事件,在另一端等待它,但我仍然不知道如何停止它。
【问题讨论】:
-
在提交阻塞函数之前找到一种获取状态的方法。我看了看但找不到类似的控制台功能,除了使用
kbhit()的简单建议。 -
我试过khbit,它立即返回。我必须从缓冲区中的控制台获取输入并通过套接字发送它
-
当然可以——这就是重点。
kbhit是非阻塞的,它会告诉您是否有一个键在输入缓冲区中等待,然后您就知道它不会阻塞了。同时,您可以检查线程是否应该关闭。 -
@mychemicalro 按键,读取结果,打印 ;)
-
CancelSynchronousIo 也可能是一个选项,但我不确定它是否适用于控制台 I/O。
标签: c windows multithreading