2010-06-14 9 views
1

쉘에서 사용자 명령 입력을 위해 내 프로그램에서 editline 라이브러리를 사용합니다. 그러나 becides 셸, 프로그램 GUI 인터페이스를 가지고 있으므로 Enter 키를 누를 때까지 블록하기 때문에 별도의 스레드에서 editline의 readline() 함수를 실행해야합니다. 블로킹없이 readline() 함수를 사용하는 방법이 있나요? 그래서 별도의 스레드 사용을 피할 수 있습니까?비 차단 입력이있는 편집 라인

+1

GUI 프로그램도 콘솔에서 읽을 수 있다는 것을 의미합니까? 그것은 복잡한 이야기입니다. – Amnon

답변

0

GUI 스레드를 다른 스레드에서 실행하고 콘솔 입력을 기본 스레드로 남겨 두지 않는 이유는 무엇입니까? 명령 행에서 읽은 후 이벤트를 GUI 스레드로 보낼 수 있습니다. 그것은 내 생각에 훨씬 더 간단합니다.

GUI가 주 스레드와 다른 스레드에서 실행할 수있는 경우에도 물론 작동합니다.

나중에 편집 : 텍스트 컨트롤/창을 만들고 거기에서 입력을 가져올 수 있습니까? Enter 키를 누르면 콘솔에서 메시지를 입력하는 것처럼 입력을 지울 수 있습니까? 나는 GUI에서 모든 것을 가지는 것이 훨씬 더 간단하다고 믿는다.

+0

문제는 제한이 있고 프로그램이 하나의 스레드에서 실행된다는 것입니다. –

+0

위의 나중에 수정 참조 – INS