Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在我的程序中使用 editline 库,用于在 shell 中输入用户命令。但是由于 shell,程序有一个 gui 界面,所以我需要在单独的线程中运行 editline 的 readline() 函数,因为它会阻塞直到按下 Enter。有没有办法在不阻塞的情况下使用 readline() 函数,所以我可以避免单独使用线程?
为什么不让 GUI 线程在不同的线程中运行,并将控制台输入留在主线程中。从命令行读取后,您可以将事件推送到 GUI 线程。在我看来,这要简单得多。
如果您的 GUI 允许您在与主线程不同的线程中运行它,这当然有效。
稍后编辑:您不能只创建一个文本控件/窗口并从那里获取输入吗?按下 Enter 后,它会清除输入 - 就像在控制台输入消息一样?我相信在 GUI 中拥有所有内容要简单得多