Программа с интерфейсом на GTK.
Основная часть - работа цикла
while (...) {
func ();
}
Функция func () производит действия, по времени заметные для человека.
Её вывод необходимо направить в некоторый GtkTextView, так, чтобы ничего
не тормозило и интерфейс отрисовывался мгновенно.
Функцию func сильно править нельзя.
Вариант
while (...) {
func ();
while (gtk_events_pending ())
gtk_main_iteration ();
}
не подходит, т.к. становится заметно время работы func (), и интерфейс
подвисает. Прятать gtk_events_pending () внутрь func () тоже нельзя.
Подскажите как можно поступить - потоки, ещё что-нибудь?
А ещё было бы, чтобы интерфейс и вычисления работали независимо друг от друга:
по прошествию одной итерации в цикле обновляется интерфейс:
while (...) {
func ();
update ();
}
Основная задача - неподвисающий интерфейс
Хотя можно и банальным fork() обойтись, а данные через pipe гонять (eсли данных не много). Но все зависит от того, меняет ли func() глобальные переменные...