2010-06-23 6 views
0

Est-ce que n'importe où livre ou bon manuel, mais un meilleur livre sur GTK +/glib, et multithread dans C/GTK +? J'ai besoin d'exécuter une fonction dans un autre thread que la fenêtre principale, et le rendre annulable.Manuel de glib et multithread

Répondre

0

Non recommandé. glib utilise une boucle d'événements, donc faites votre traitement en tranches via g_timeout_*() ou g_idle_*(), et arrêtez simplement le traitement lorsque vous voulez l'annuler.

2

GCancellable fait partie de la bibliothèque d'E/S GIO. Il fournit un moyen sûr d'insérer simplement un message «annuler vous-même» et devrait être facile à mettre en œuvre dans un fil de votre choix.

Il suffit de créer une instance de GCancellable en utilisant g_cancelablle_new(), puis soit le sondage périodiquement (en utilisant g_cancellable_is_cancelled()) dans votre fil, ou utiliser le support du signal.