Delay em aplicações GTK+
- Posted by acidx on October 15th, 2006 filed in c, glib, gtk, hack, programming
- Comment now »
Se desenvolve aplicações em GTK+, certamente já sentiu necessidade de colocar um pequeno delay dentro de um callback. O problema é que se o delay demorar mais que 10ms, o usuário pode perceber e a interface vai travar, o que não é nada agradável.
A solução abaixo é bem simples e permite que seu código fique parado por (pelo menos) dados milisegundos, sem parar o loop principal do GTK+. Está em C, mas usar a mesma técnica em outra linguagem é trivial:
static gboolean __nonblock_cb(gpointer data)
{
gtk_main_quit();
return FALSE;
}
void nonblock_sleep(guint msec)
{
g_timeout_add(msec, (GSourceFunc)__nonblock_cb, NULL);
gtk_main();
}












Leave a Comment