Dear users, I had a problem regarding Threads in python and Gtk3. I want to stop a while loop in Gtk , a loop starded with a thread. I want to control a delay timer laser board with give me ,when I send a command by serial connection, give back continuous status values ; but I want to stop this loop , to modify parameters and start the loop again.
A part of my code is here : import serial import threading import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GObject,Pango, GLib from threading import Thread GObject.threads_init()............. #START BUTTON def start(self,button_start): Thread(target=self.start_on,args=(self.button_start)) def start_on(self,widget,data=None): if ser.isOpen(): cmd = 's' ser.write(cmd.encode('ascii')+'\r\n') while True: try: values = ser.readline() self.label_result.set_text(values) except: pass #STOP BUTTON def stop(self,button_stop): Thread(target=self.stops,args=(button_stop)).start() def stops(self,widget,data=None): if ser.isOpen(): try: cmd = 'f' ser.write(cmd.encode('ascii')+'\r\n') status = ser.readline() self.label_result.set_text(status) except: pass ...........win=sincrolaser() win.show_all() Gtk.main() But the problem is when I send STOP button program freeze , probably the loop from the start is looping forever. How do I stop the start thread? Is there a posibility to give a thread flag or identity to find him and close? Thank you,Alex --------- Eng.ALEXANDRU ACHIM National Institute for Lasers, Plasma and Radiation Physics Center for Advance Laser Technologies - PW Laser Facility _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor