我在我的程序中使用 editline 库,用于在 shell 中输入用户命令。但是除了 shell,程序有一个 gui 界面,所以我需要在单独的线程中运行 editline 的 readline() 函数,因为它会阻塞直到按下 Enter。有没有一种方法可以在不阻塞的情况下使用 readline() 函数,这样我就可以避免使用单独的线程?
最佳答案
为什么不让 GUI 线程在不同的线程中运行,而将控制台输入留在主线程中。从命令行读取后,您可以将事件推送到 GUI 线程。在我看来,这要简单得多。
如果您的 GUI 允许您在与主线程不同的线程中运行它,那么这当然有效。
后期编辑:您不能只创建一个文本控件/窗口并从那里获取输入吗?一旦你按下 Enter,它就会清除输入——就像在控制台输入信息一样?我相信在 GUI 中拥有一切要简单得多
关于c++ - 具有非阻塞输入的编辑行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3036839/