Bagaimana untuk Mengekalkan Kawalan Ke Atas Mengulang Fungsi Menggunakan Python's Threading.Timer?

Barbara Streisand
Lepaskan: 2024-11-09 18:37:02
asal
432 orang telah melayarinya

How to Maintain Control Over Repeating Functions Using Python's threading.Timer?

Pemasa.Pemasa - Mengekalkan Kawalan ke atas Fungsi Berulang

Pemasa.Pemasa Python menyediakan mekanisme untuk menjadualkan fungsi untuk dijalankan pada selang masa tertentu. Walau bagaimanapun, pendekatan awal menggunakan berbilang panggilan untuk memulakan() boleh membawa kepada ralat masa jalan.

Untuk menyelesaikan isu ini, adalah disyorkan untuk membuat kelas urutan tersuai, seperti yang ditunjukkan dalam penyelesaian di bawah:

import threading

class MyThread(threading.Thread):
    def __init__(self, event, function):
        threading.Thread.__init__(self)
        self.stopped = event
        self.function = function

    def run(self):
        while not self.stopped.wait(0.5):
            self.function()
Salin selepas log masuk

Dalam kelas ini, acara yang dihentikan digunakan untuk mengawal pelaksanaan utas. Daripada memulakan dan menghentikan pemasa beberapa kali, utas akan berjalan secara berterusan, menyemak acara yang dihentikan pada selang masa yang tetap. Apabila acara ditetapkan, urutan ditamatkan.

Dalam kod yang memulakan pemasa, anda kemudiannya boleh menggunakan acara yang dihentikan untuk menghentikan pemasa:

stopFlag = threading.Event()
thread = MyThread(stopFlag, function)
thread.start()

# To stop the timer later on
stopFlag.set()
Salin selepas log masuk

Pendekatan ini menyediakan bersih dan cara yang cekap untuk memulakan, menghentikan dan menetapkan semula pemasa, membolehkan kawalan fleksibel ke atas pelaksanaan fungsi berulang.

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Kawalan Ke Atas Mengulang Fungsi Menggunakan Python's Threading.Timer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan