Stopping a thread
We have to start a thread to actually make it do something by calling the start()
method, so, intuitively, we would expect there to be a matching stop()
method, but there is no such thing. In this recipe, we will learn how to run a thread as a background task, which is called a daemon. When closing the main thread, which is our GUI, all daemons will automatically be stopped as well.
Getting ready
When we call methods in a thread, we can also pass arguments and keyword arguments to the method. We start this recipe by doing exactly that.
How to do it...
By adding args=[8]
to the thread constructor and modifying the targeted method to expect arguments, we can pass arguments to threaded methods. The parameter to args
has to be a sequence, so we will wrap our number in a Python list.
def methodInAThread(self, numOfLoops=10): for idx in range(numOfLoops): sleep(1) self.scr.insert(tk.INSERT, str(idx) + '\n')
In the following code, runT
is a local variable which we only access...