Je dois modifier l'intervalle de temporisation d'un GLib pendant son exécution. Est-ce possible? J'ai jeté un coup d'oeil au code source et cela me semble possible, mais il est nécessaire d'utiliser certaines fonctions non publiques des internes de GLib. Dois-je réimplémenter GTimeoutSource ou y a-t-il un moyen de le faire?Temporisations variables dans GLib
6
A
Répondre
3
Dans votre fonction de délai d'attente, vous pourriez ajouter à nouveau la fonction avec le nouvel intervalle de temps mort, puis revenez FALSE
pour supprimer le délai d'attente avec l'ancien intervalle:
gboolean
my_timeout_function(gpointer data)
{
// do stuff
// ...
if(need_to_change_interval)
{
g_timeout_add(new_interval, (GSourceFunc)my_timeout_function, data);
return FALSE;
}
return TRUE;
}
Questions connexes
- 1. C: Temporisations multiples
- 2. Temporisations Flex RemoteObject?
- 3. Temporisations MySQL pendant la validation
- 4. Temporisations SerialPort en mode autonome
- 5. Temporisations .Net: WaitForSingleObject vs Timer
- 6. Problème avec g_file_test dans glib
- 7. WCF 4 temporisations par défaut?
- 8. Que doit être Glib :: init() pour utiliser Glib :: wrap?
- 9. glibc, glib et gnulib
- 10. GLib-GObject-CRITICAL warnings
- 11. C - Glib Portabilité GINT_TO_POINTER
- 12. libérant Glib :: RefPtr
- 13. GLib Hash Table - Pointer
- 14. glib sur Symbian S60
- 15. Glib-Erreur MYSQL?
- 16. Temporisations de session ASP.NET trop tôt
- 17. acquisition id fil (TID) dans glib
- 18. Flex 4 temporisations continuent de se déclencher
- 19. Manuel de glib et multithread
- 20. Les routines MD5 compatibles GLib?
- 21. Compiler Glib Code sur Ubuntu
- 22. Trier Hash Tables Glib - Qsort
- 23. tkinter intégration avec glib mainloop
- 24. Impossible de compiler le programme GLIB de base après GLIB installer
- 25. Besoin d'aide pour implémenter un serveur socket simple en utilisant GIOService (GLib, Glib-GIO)
- 26. Analog des quarks Glib sur Mac OS
- 27. Comparaison des temporisations (cocher) de sécurité du renversement
- 28. Pourquoi GLib redéfinit-il les types?
- 29. Comment compiler et utiliser GLib avec MinGW
- 30. Windows XP GTK App Glib Erreur d'importation
Oui, c'est ce que je pensais mais j'étais chercher une meilleure solution car g_timeout_add crée une nouvelle GSource (GTimeoutSource, en fait) et retourner FALSE détruit la source GSource que vous utilisez lorsque vous voulez juste modifier l'intervalle, ne pas détruire et recréer l'ensemble GTimeoutSource. – Matachana
Je ne pense pas que ce sera un problème de performance notable. Les développeurs Glib ont généralement une bonne raison quand ils n'exposent pas un interne dans leur API. – ptomato