[Çözüldü] Python Thread durdurma

Başlatan empax, 05 Ekim 2012 - 10:51:08

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

empax

Baslatilan Threadi nasil durdurabilirim? Tesekkurler  :)

Alıntı Yap#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Tkinter import *
import time
from threading import Thread

pencere = Tk()
pencere.title("Sayaç")


class Sayac:
   def say(self):
      i=0
      while True:
         i+=1         
         time.sleep(1)
         pencere.update()
         ekran["text"]="00:0",i
   def dur(self):
      pass

   def thread(self):
      self.run = Thread(target = self.say)
      self.run.start()

lnk = Sayac()


ekran = Label(text="00:00")
ekran.pack()

basla = Button(text="Başlat", command=lnk.thread)
basla.pack(side=LEFT)
durdur = Button(text="Durdur", command=lnk.dur)
durdur.pack(side=LEFT)
temizle = Button(text="Temizle")
temizle.pack(side=LEFT)



pencere.mainloop()
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

hitokiri

#1
Hani şimdi bakamıyorum ancak daha genel bir öneride bulanayım XD
Uçbirimden python konsoluna düşünce ,
kütüphane seçenekleri görünüyor olmalı,
ya da kodun içine bir ,
print dir(self.run)

ekleyerek seçeneklerini görebilirsin stop veya remove_id(self.run) gibi bir şeyler olmalı,
hiç biri değilse, belki
del self.run
bir şeyler yapabilir, belki yani XD

Yinede bir değişkenle bu iş rahatça hâl olur XD


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ts=4:sw=4
from Tkinter import *
import time
from threading import Thread

pencere = Tk()
pencere.title("Sayaç")

global ekran
class Sayac:
    dur = None
    def say(self):
        i=0
        while self.dur:
            i+=1         
            time.sleep(1)
            pencere.update()
            ekran["text"]="00:0",i
        ekran["text"] = "00:00"
    def dur(self):
        self.dur = None

    def thread(self):
        if self.dur is True:
            return False
        self.run = Thread(target = self.say)     
        self.dur = True
        self.run.start()

lnk = Sayac()


ekran = Label(text="00:00")
ekran.pack()

basla = Button(text="Başlat", command=lnk.thread)
basla.pack(side=LEFT)
durdur = Button(text="Durdur", command=lnk.dur)
durdur.pack(side=LEFT)
pencere.mainloop()

empax

Cok sagol @hitokiri  ;D
Sayende cozuldu konu. Az biraz daha pratikle ustesinden gelecegiz insAllah.  :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|