У меня есть приложение, которое порождает рабочий поток, вызывая g_thread_new (). Рабочий поток должен отправить информацию о ходе выполнения или, возможно, возникшие ошибки в основной поток, который обновляет GUI на основе полученных данных.
В настоящее время я использую:
gtk_main_context_invoke(NULL, (GSourceFunc)update_gui, data);
с первый параметр (типа GMainContext *), равный NULL, для запуска update_ gui () в главном контексте l oop, чтобы рабочий мог продолжить выполнение фактической работы.
При просмотре документации я обнаружил function:
guint g_idle_add (GSourceFunc function, gpointer data);
Будет ли эта функция более подходящей для моего приложения или я должен использовать совершенно другую функцию для передачи событий от рабочего к основному потоку?