3 saniyede bir fonksiyon çalıştırma

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.