了解GLib任务和上下文

时间:2019-03-18 20:47:50

标签: event-handling glib

我不了解GTask功能?我为什么需要这个? 在我看来,这就像回调。.在某种情况下,您将回调设置为源,然后在事件发生时调用此回调。

通常,对于GLib中的上下文和任务以及为什么需要它们,我有些困惑。 在我的理解中,有一个主循环(仅1?)可以运行多个上下文(什么是上下文?),并且每个上下文都与多个源相关,这些源依次具有类似于处理程序的回调。

所以有人能在这一切上对我有所帮助吗?

1 个答案:

答案 0 :(得分:0)

  

我不了解GTask功能?我为什么需要这个?在我看来,这就像回调。.在某种情况下,您将回调设置为源,然后在事件发生时调用此回调。

GTask公开的主要功能是轻松安全地在线程中运行任务并将结果返回到主线程。

  

通常,对于GLib中的上下文和任务以及为什么需要它们,我有些困惑。在我的理解中,有一个主循环(仅1?)可以运行多个上下文(什么是上下文?),并且每个上下文都与多个源相关,这些源依次具有类似于处理程序的回调。

为简单起见,我认为考虑上下文并循环同一件事是安全的,并且可以有多个上下文。因此,为了确保线程安全,任务必须知道结果返回到哪个上下文。