如果之让定时器执行一次,回调函数返回false,如果返回true,会定时执行。
#include <stdio.h>
#include <unistd.h>#include <signal.h>
#include <glib.h>
int id = 0;
gboolean service_send_change(gpointer data){
id = 0;
printf("signal aaaaaaaaaaaaa%d\n", id);
return true;
}
gboolean service_send_changed(gpointer data){
id = 0;
printf("signal iiiiiiiiiiiis %d\n", id);
return false;
}
int main(int argc, char* argv[])
{
GMainLoop* loop;
if(g_thread_supported() == 0)
g_thread_init(NULL);
g_print("g_main_loop_new\n");
loop = g_main_loop_new(NULL, FALSE);
//增加一个定时器,100毫秒运行一次callback
id = g_timeout_add(100,service_send_changed,NULL);
g_timeout_add(100, service_send_change,NULL);
g_print("g_main_loop_run\n");
g_main_loop_run(loop);
g_print("g_main_loop_unref\n");
g_main_loop_unref(loop);
return 0;
}
编译方式:
gcc glib0315.c -o aaaaa `pkg-config --cflags --libs glib-2.0`