Как g_main_loop работает в программировании на gtk? - PullRequest
5 голосов
/ 11 января 2010

Я новичок в программировании на GTK +. Я столкнулся с API под названием g_main_loop(). Я использовал его в своем коде, но я до сих пор не знаю, как именно это работает. Может кто-нибудь объяснить g_main_loop() небольшим фрагментом кода?

1 Ответ

3 голосов
/ 17 января 2010

Я рекомендую читать документацию , начиная с связанной функции <a href="https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-main-loop-new" rel="nofollow noreferrer">g_main_loop_new()</a>.

По сути, разрешение glib «владеть» основным циклом вашего приложения облегчает поддержку таких вещей, как «подключаемые» источники событий; где ваше приложение слушает как (например) события, поступающие от GTK + виджетов, так и сетевой сокет или канал Unix. Это те вещи, которые необходимо соединить на довольно низком уровне в главном цикле приложения, и облегчение им позволяет glib владеть этими частями.

Существуют структуры данных glib (например, IO-каналы ), которые совместимы с основным циклом и позволяют добавлять элементы в набор входов, которыми управляет цикл. Для GTK + соединения являются автоматическими, и основной цикл GTK + (<a href="http://developer.gnome.org/gtk3/stable/gtk3-General.html#gtk-main" rel="nofollow noreferrer">gtk_main()</a>) оборачивает глибы.

...