2012-05-27 4 views
4

스레드 A : Gtkmm의 메시지 루프가 실행되는 UI 스레드.Gtkmm : 다른 스레드에서 UI를 업데이트하는 방법? 지속적으로

스레드 B : 네트워크를 통해 데이터를 수신하여 파일에 기록합니다.

이제 스레드 B의 파일에 덤프 된 동일한 데이터가 UI의 Gtk :: TextView에 동시에 표시되기를 바랍니다. 그 일을하는 가장 좋은 방법은 무엇입니까?

Glib :: Dispatcher는 데이터를 가져 가지 않습니다. 따라서 작업 완료 사실을 알리는 것만으로 좋습니다.

libSigCX는 나를 슬프게합니다.

답변

4

Glib::Threads::Mutex (또는 이와 동등한) 보호 std::queue<std::string> 데이터 구조와 함께 Glib::Dispatcher을 사용해 보겠습니다. Dispatcher를 사용하여 큐에 넣은 후에 각 작업 항목의 UI 스레드에 알립니다.

0

스레드 구조 B에 대한 매개 변수로 UI 구조체 포인터를 전달해야 할 수도 있습니다. 구조체에는 이미 TextView를 사용할 수있는 방식으로 할당 된 모든 신호가 있습니다.

관련 문제