glib 和多线程手册
有没有什么书或好的手册,但是关于 GTK+/glib 和 C/GTK+ 中的多线程的更好的书?我需要在主窗口之外的另一个线程中运行一个函数,并使其可取消。
Is anywhere book or good manual, but better book about GTK+/glib, and multithreading in C/GTK+? I need to run a function in another thread than main window, and make it cancellable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
GCancellable 是 GIO I/O 库的一部分。它提供了一种线程安全的方法来简单地发送“取消自己”消息,并且应该很容易在您自己的线程中实现。
只需使用
g_cancellable_new()
创建一个 GCancellable 实例,然后在线程中定期轮询(使用g_cancellable_is_cancelled()
),或者使用信号支持。GCancellable is part of the GIO I/O library. It provides a thread-safe way to simply send a "cancel yourself" message, and should be easy to implement in a thread of your own.
Simply create an instance of GCancellable using
g_cancelablle_new()
, and then either poll it periodically (usingg_cancellable_is_cancelled()
) in your thread, or use the signal support.不推荐。 glib 使用事件循环,因此可以通过
g_timeout_*()
或g_idle_*()
进行切片处理,并在想要取消时停止处理。Not recommended. glib uses an event loop, so do your processing in slices via
g_timeout_*()
org_idle_*()
, and just stop processing when you want to cancel it.