Editline с неблокирующим вводом - PullRequest
2 голосов
/ 14 июня 2010

Я использую библиотеку editline в моей программе для ввода пользовательских команд в оболочке. Но кроме оболочки, программа имеет графический интерфейс, поэтому мне нужно запустить функцию readline () editline в отдельном потоке, потому что она блокируется до нажатия Enter. Есть ли способ использовать функцию readline () без блокировки, чтобы я мог избежать использования отдельных потоков?

1 Ответ

0 голосов
/ 14 июня 2010

Почему бы не заставить поток графического интерфейса работать в другом потоке и оставить консольный ввод в основном потоке. Вы можете помещать события в поток GUI после чтения из командной строки. На мой взгляд, все гораздо проще.

Это работает, конечно, если ваш графический интерфейс позволяет вам запускать его в другом потоке, чем основной.

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: Не могли бы вы просто создать текстовый элемент управления / окно и получить оттуда ввод? Когда вы нажимаете Enter, он очищает ввод - как печатать сообщения на консоли? Я полагаю, что в GUI все гораздо проще

...