Руководство по glib и многопоточности - PullRequest
0 голосов
/ 23 июня 2010

Где-нибудь книга или хорошее руководство, но лучше книга о GTK + / glib и многопоточности в C / GTK +?Мне нужно запустить функцию в другом потоке, кроме основного окна, и сделать его отменяемым.

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

GCancellable является частью библиотеки ввода / вывода GIO. Он обеспечивает потокобезопасный способ просто отправить сообщение «отменить себя» и должен быть легко реализован в вашей собственной цепочке.

Просто создайте экземпляр GCancellable, используя g_cancelablle_new(), а затем либо периодически опрашивайте его (используя g_cancellable_is_cancelled()) в своем потоке, либо используйте поддержку сигнала.

0 голосов
/ 23 июня 2010

Не рекомендуется. glib использует цикл обработки событий, поэтому выполняйте обработку срезами с помощью g_timeout_*() или g_idle_*() и просто останавливайте обработку, когда хотите отменить ее.

...