【发布时间】:2010-06-23 08:38:13
【问题描述】:
关于 GTK+/glib 和 C/GTK+ 中的多线程的任何书籍或好手册,但更好的书籍?我需要在主窗口之外的另一个线程中运行一个函数,并使其可取消。
【问题讨论】:
关于 GTK+/glib 和 C/GTK+ 中的多线程的任何书籍或好手册,但更好的书籍?我需要在主窗口之外的另一个线程中运行一个函数,并使其可取消。
【问题讨论】:
GCancellable 是 GIO I/O 库的一部分。它提供了一种线程安全的方式来简单地发送“取消自己”消息,并且应该很容易在您自己的线程中实现。
只需使用g_cancelablle_new() 创建一个 GCancellable 实例,然后在您的线程中定期轮询它(使用 g_cancellable_is_cancelled()),或者使用信号支持。
【讨论】:
不推荐。 glib 使用事件循环,因此通过g_timeout_*() 或g_idle_*() 进行切片处理,并在您想取消它时停止处理。
【讨论】: