можно получить время, оставшееся на бойцовском событии? - PullRequest
5 голосов
/ 28 октября 2010

Я создаю событие с g_timeout_add или g_timeout_add_seconds, которое возвращает идентификатор события;Я могу отменить событие, позвонив по номеру g_source_remove.

. Однако в какой-то момент мне хотелось бы узнать, сколько времени осталось до запуска события.Есть ли простой способ сделать это с помощью glib api, или мне нужно вручную хранить и сравнивать временные метки с g_source_get_current_time?

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

Нет разумного способа сделать это в GLib.

Необоснованным способом было бы получить GSource (g_main_context_find_source_by_id) и затем вызвать операцию source-> source_funcs-> prepare () на GSource, которая будет возвращать время до отправки источника. Это немного схематично: source_funcs является приватным, и prepare () на самом деле не предназначен для использования, кроме как внутри основного цикла.

Лучше всего могу сказать, что это сработает. Я не пробовал это.

2 голосов
/ 01 апреля 2011

сохранить время начала + интервал ожидания, вычесть из текущего времени, когда вы хотите узнать оставшееся время.

...