方法
GLibMainContextinvoke
版本: 2.28
声明 [源]
void
g_main_context_invoke (
GMainContext* context,
GSourceFunc function,
gpointer data
)
描述 [源]
以这种方式调用函数,确保在调用function
期间context
被拥有。
如果context
是NULL
,则使用全局默认主上下文——由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
。数据由方法调用者拥有。