計時器函數
計時器函數可以用於為操作計時(例如,記錄某項操作用了多長時間)。使用它的第一步是用g _ t i m e r _ n e w ( )函數建立一個計時器,然後使用g _ t i m e r _ s t a r t ( )函數開始對操作計時,使用g _ t i m e r _ s t o p ( )函數停止對操作計時,用g _ t i m e r _ e l a p s e d ( )函數判定計時器的已耗用時間。
建立一個新的計時器:
GTimer *g_timer_new( void );
銷毀計時器:
void g_timer_destroy( GTimer *timer );
開始計時:
void g_timer_start( GTimer *timer );
停止計時:
void g_timer_stop( GTimer *timer );
計時重新置零:
void g_timer_reset( GTimer *timer );
擷取計時器流逝的時間:
gdouble g_timer_elapsed( GTimer *timer,
gulong *microseconds );
有時候可能想應該在g t k _ m a i n主迴圈中怎樣讓G T K做點什麼。這時可以建立一個定時(Ti m e o u t)函數,隔一定時間(毫秒)就調用一次。Ti m e o u t類似於其他編程環境中的定時器控制項。下面的函數用於添加一個Ti m e o u t函數。
#include <gtk/gtkmain.h>
gint gtk_timeout_add( guint32 interval,GtkFunction function,gpointer data );
第一個參數調用定時函數的時間間隔,以毫秒計。第二個參數是要調用的函數,第三個是要傳遞給函數的參數。函數返回一個整數值“標誌”。可以用下面的函數停止調用定時函數:
#include <gtk/gtkmain.h>
void gtk_timeout_remove( gint tag );
其中t a g參數是前一個函數返回的“標誌”值。還可以讓回呼函數返回FA L S E或0來停止調用定時函數。也就是說,要想讓函數繼續調用,必須讓它返回一個非0值或T R U E。定期調用的回呼函數聲明應該是下面的形式:
gint timeout_callback( gpointer data );
可以看到,Ti m e o u t函數類似於許多可視化編程工具中的Ti m e r控制項(計時器)。