Лучший способ обращаться с часами реального времени? - PullRequest
0 голосов
/ 13 февраля 2012

Я создаю приложение для платформы Linux на C с графическим интерфейсом GTK + 2.Мне нужно, чтобы часы реального времени работали на экране, отображая ЧЧ: ММ: СС (нужно только с точностью до секунды), а затем чтобы различные функции запускались в определенное время, введенное пользователем в поле GTK_ENTRY.

Я искал лучший способ сделать это и нашел похожие вопросы, на которые люди ответили, чтобы использовать потоки GThread для контроля времени, но я не смог найти каких-либо подробностей.

Могу ли я отправить в поток функцию, которая содержит бесконечный цикл, постоянно проверяющий время снова и снова?Каким-то образом это не кажется правильным или лучшим способом справиться с этим.

Я был бы очень признателен за любую конкретную информацию, которую кто-либо может предложить, или за направление к ресурсам, которые могли бы ответить на этот вопрос.

Спасибо!

1 Ответ

0 голосов
/ 13 февраля 2012

Просто добавьте обработчик времени ожидания glib, используя <a href="http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-timeout-add" rel="nofollow">g_timeout_add()</a>.Если вы используете период, скажем, полсекунды, вы должны быть в порядке.В коде обработчика выполните любые манипуляции с виджетами, чтобы обновить отображаемое время.Это может быть так же просто, как форматирование некоторого текста для GtkLabel.

Конечно, я не рекомендую использовать «тиканье» обратных вызовов времени ожидания в качестве фактического источника синхронизации, вы должны использовать обычный API:s, чтобы узнать, сколько времени в каждом обратном вызове.

...