函数
GLibSourceremove
声明 [src]
gboolean
g_source_remove (
guint tag
)
描述 [src]
从默认主上下文中移除具有给定 ID 的源。对于添加到非默认主上下文的源,必须使用 g_source_destroy()
。
GSource
的 ID 由 g_source_get_id()
提供,或者由函数 g_source_attach()
、g_idle_add()
、g_idle_add_full()
、g_timeout_add()
、g_timeout_add_full()
、g_child_watch_add()
、g_child_watch_add_full()
、g_io_add_watch()
和 g_io_add_watch_full()
返回。
尝试移除不存在的源是编程错误。
更具体地说:源 ID 在源被销毁后可以重新分配,因此使用可能已经删除的源 ID 调用此函数永远是不正确的。一个例子是在使用 g_idle_add()
在另一个线程中安排空闲运行时:空闲可能在调用此函数其(现在无效)源 ID 时已经运行并被删除。此源 ID 可能已被重新分配,导致针对错误的源执行操作。