[Linux-programlama] Python, GTK ve Threading

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Tonguc Yumruk (tongucyumruk@interaktif.gen.tr)
Date: Sat 23 Apr 2005 - 16:17:10 EEST


Merhaba,

GTK, Glade ve Python kullanarak basitçe dosyaları bir yerden diğerine
kopyalayan bir uygulama yazıyorum (neden diye sormayın, GTK/Glade
öğrenmek için tabiiki). Sorunum şu: Dosyaları bir döngü içerisinde teker
teker kopyalıyorum ve bu işlem sırasında GUI'nin tepki vermeye devam
edebilmesi için de kopyalama işlemini ayrı bir thread üzerinden
çalıştırıyorum.

Kurduğum mekanizma ise şöyle: Kopyalama işini yapmak için
threading.Thread sınıfının bir alt sınıfını yazıyor ve bunun her dosya
kopyalama işleminden sonra bir callback fonksiyonunu çalıştırmasını
sağlıyorum. Böylece uygulama olan bitenden haberdar oluyor.

Daha doğrusu olması gerekiyor. Kodu çalıştırdığım zaman thread'i
çalıştıracak düğmeye basıyorum ve hiçbirşey olmuyor. Daha sonra program
gtk.main_quit'i çalıştırıp gtk döngüsünden çıktığında thread çalışmaya
başlıyor, ardından program kapanıyor.

Daha önce gtk.main() tarzı bir döngü içermeyen test kodlarımda bu tarz
bir problem yaşamamıştım bu nedenle problemin GTK kaynaklı olduğunu
düşünüyorum.

Sorun çıkaran koda http://tonguc.ath.cx/importme.py adresinden
ulaşabilirsiniz.

Not: Aslında bu koşullar altında Async I/O daha iyi bir çözüm olabilir
fakat Python'da nasıl kullanacağım konusunda bilgi bulamadım.

-- 
Sevgi Saygı GNU/Linux
########################################################################
QOTD:
	Money isn't everything, but at least it keeps the kids in touch.
########################################################################
Tonguç Yumruk


_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.