Безопасность использования pthreads в приложении Gtk + 2.0
У меня есть простое многопоточное приложение Gtk + 2.0, которое получает данные из нескольких источников (микрофон, веб-камера, датчик температуры) и отображает данные из них в виде изображений на экране (захваты кадров веб-камеры, данные микрофона, представленные в виде осциллографа, текста и т. Д.).
Насколько я понимаю из руководства Gtkи различные статьи что только основной поток обработки должен использовать любые функции / вызовы Gtk, которые влияют на пользовательский интерфейс. Тем не менееmain()
блоки входа наgtk_main()
пока я не закрою интерфейс. За исключением обработчиков событий, которые отображаются на такие вещи, как когда я нажимаю на кнопку или ползунок в моем пользовательском интерфейсе, кажется, что единственная оставленная мне возможность - это порождать несколькоpthread
s и пусть они выполняют периодическую выборку данных и обновляют информацию на экране в пользовательском интерфейсе.
Я помню, что, занимаясь разработкой графического пользовательского интерфейса MFC, далёкий путь назад, когда применялся похожий принцип: только один конкретный поток должен обновлять элементы пользовательского интерфейса. Как мне сделать это в C с помощью Gtk + 2.0?
Спасибо.