方法

GLibMainContextinvoke

版本: 2.28

声明 [源]

void
g_main_context_invoke (
  GMainContext* context,
  GSourceFunc function,
  gpointer data
)

描述 [源]

以这种方式调用函数,确保在调用function期间context被拥有。

如果contextNULL,则使用全局默认主上下文——由g_main_context_default()返回。

如果context被当前线程拥有,则直接调用function。否则,如果context是当前线程的线程默认主上下文,并且g_main_context_acquire()成功,则调用function并在之后调用g_main_context_release()

在其他情况下,将创建一个空闲源以调用function,并将该源附加到context上(假设在另一个线程中运行)。空闲源以G_PRIORITY_DEFAULT优先级附加。如果您想要不同的优先级,请使用g_main_context_invoke_full()

注意,就像普通的空闲函数一样,function很可能应该返回FALSE。如果它返回TRUE,它将连续在循环中运行(并且可能阻止此调用返回)。

自: 2.28

此方法对语言绑定不可直接访问。

参数

function

类型: GSourceFunc

要调用的函数。

data

类型: gpointer

传递给function的数据。

该参数可以是NULL
数据由方法调用者拥有。