Hocalarım selamlar. Pythona yeni başladım ve Tkinter kütüphanesini kullanarak bir yazılım yapıyorum. Ancak şöyle bir sorunum var. Bir tane usbkontrol adında fonksiyonum var ve ben bunu 3 saniyede bir çalıştırmak istiyorum. sleep kullandım pencere açılmadı. Yani anlayacağınız yardıma ihtiyacım var.
import time
if(time.time() * 1000 >= 3000):
Falan filan
Altaki şekilde çok daha doğru olacaktır.
import time
ilkZaman = 0
sonZaman = 0
aralikZaman = 3000 #milisaniye
sayac = 0
try:
while(True):
ilkZaman = time.time() * 1000
if(ilkZaman - sonZaman >= aralikZaman):
sayac += 1
print(f"{sayac:6d}, {aralikZaman/1000:.1f} saniye doldu...\n")
sonZaman = ilkZaman
except KeyboardInterrupt:
print("Çıkış yapıldı.\n")
2 Beğeni
Merhabalar,
Ikinci bir thread kullanmaniz lazim.
import threading
import time
def thread_main():
while True:
time.sleep(3)
print("3...")
t = threading.Thread(target=thread_main, daemon=True)
t.start()
time.sleep(10)
Ana thread calismaya devam ederken (ornekte time.sleep(10) calistiriyor), arkada ikinci bir thread thread_main
fonksiyonunu calistiracaktir.
Bazi seylerin ana thread’den veya pencereyi yaratan thread’den cagrilmasi lazim; buna dikkat etmeniz gerekebilir.
3 Beğeni
Hocalarım değerli fikirleriniz çok teşekkür ederim. Kendi uygulamamda var olan sayacın içine if koşulu ile işimi çözdüm.