Bonjour à tous et à toutes.
J'ai actuellement une application utilisant gtkmm en développement. Dans cette application, j'ai 2 processus gérer l'affichage tout en ayant un processus principale qui tourne en permanence.
L'intérêt est de pouvoir avoir une interface facultative qui tourne par dessus un cycle principale.
Donc pour cela :
1) Je crée mes fenêtres dans le cycle principale
2) Je lance un thread avec le Gtk::Main::run() pour ne pas bloquer le processus principale
3) Le processus principale continu de tourner normalement pendant que le run() ne bloque pas le reste.
Cette technique (quoique peut-être étrange me dirons certain mais obligatoire de par la structure de mon application) fonctionne parfaitement sous Linux.
Le problème c'est qu'elle doit également être porté sous Windoz, et là, quand le run() est dans un thread, les interfaces ne semble plus gérer par la pile d'événement (elle se réaffichent même plus). Si le run() est dans le thread principale, aucun problème, mais ça bloque le reste du processus sur le run().
Après maintes recherche, j'ai cru comprendre que les threads Windows & Linux était différent parce que Gtk et basé sur X11. Le problème c'est que j'aimerai sincèrement pouvoir exécuter mes fenêtres depuis ce thread, où, à la limite pouvoir appeler à intervalle régulier la gestion des événements Gtk avoir mon interface fonctionnel.
Voilà.
Si quelqu'un à une idée dans ce domain, je lui en serai très reconnaissant, car j'ai aussi du mal à comprendre le fonctionnement interne de Gtk.
Partager