From: M.Ali VARDAR (alivardar@ttnet.net.tr)
Date: Thu 31 Jul 2003 - 09:28:57 EEST
Selamlar
GTK ile thread kullanımına ornek basit bir uygulama
http://www.linuxprogramlama.com/index.php?sayfa=gtktalker.htm adresşinden bakılabilir.
Saygılarımla
M.Ali VARDAR
> Kimden: Mustafa Sahin <msahin@comu.edu.tr>
> Tarih: 2003/07/31 Thu AM 08:23:10 EEST
> Kime: linux-programlama@liste.linux.org.tr
> Konu: [linux-programlama] Re: gtk+
>
> Bu tip durumlarda thread mantıgı kullanılır yani senin dongu icinde
> yaptırdıgın islemi thread icinde yaptırırsın boylece diger
> uygulamaların ve senin diger kodlarında arada bir calisir GTK da thread
> var mı bilmiyorum ama bakman lazım.
> sanırım soyle olması gerekiyor
>
> gdk_threads_enter();
> //senin dongun
> gdk_threads_leave();
>
>
>
> necati.demir@students.comu.edu.tr wrote:
>
> >merhabalar,
> >gtk+ ile bir pencere oluşturdum, üstüne butonu koydum. ardından butonun
> >click sinyalini main2 fonksiyonuna yönlerdim. main2 fonksiyonun yaptığı iş
> >durmadan(saniyede bir) konsola merhaba yazıyor. işte bu esnada oluşturduğum
> >pencereyi bir daha kullanamıyorum. kitleniyor. ne yapmam lazım. kodlar
> >aşağıda. pencere içine başka nesne koysam, onu da kullanamıyorum. yani
> >pencere kitleniyor (sonsuz döngü nedeniyle).
> >/***********Necati*********/
> >#include <gtk/gtk.h>
> >#include <time.h>
> >#include <stdlib.h>
> >GtkWidget *window;
> >GtkWidget *button;
> >struct timespec *req, *rem;
> >void main2(GtkWidget * widget, gpointer gdata)
> >{
> >
> > req = new timespec;
> > rem = new timespec;
> > req->tv_sec = 1;
> > req->tv_nsec = rem->tv_nsec = rem->tv_sec = 0;
> > while(1){
> >
> > g_print("merhaba\n");
> > nanosleep (req, rem);
> >
> > }
> >}
> >/*****************/
> >int main(gint argc,gchar *argv[])
> >{
> >
> >
> > gtk_init (&argc, &argv);
> > window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
> > button=gtk_button_new_with_label("TAMAM");
> > gtk_container_add (GTK_CONTAINER (window), button);
> >
> >gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(main2),NULL)
> >;
> > gtk_widget_show (window);
> > gtk_widget_show (button);
> > gtk_main ();
> > exit (0);
> >
> >}
> >
> >
> >
> >
> >
> >
>
>
>
>