Try to stop thread Using flag

many_years_after shuanyu at gmail.com
Sat Nov 25 07:12:08 EST 2006


Hi,pythoners:

    I countered some problems when I try to stop threads using flag.
These are my some important codes:

#####  mythread.py
    def run(self):
        while self.addr != '':    ### text waiting for processing
            if not self.CONTINUE:   ### flag for thread ,means to exit
the RUN func or not
                break
            print self.name
            post(self.params, self.addr)  ### func to process the text
            self.addr = furl.readline().strip()


######  myapp.py
     def OnEndProcess(self, event):
       if self.threadList:
            for thread in self.threadList:
                thread.CONTINUE = False
#####   this func is an EVENT processor. When I press the END BUTTON ,
it will be caused.

    def OnBeginProcess(self, event):
            for i in range(num):
                if lines[i]!= '':
                    thread =
mythread.mythread('Thread'+str(i),lines[i], params)
                    self.threadList.append(thread)

            print '\n Starting Threads'

            for i in self.threadList:
                i.start()


######  this func is an EVENT processor. When I press the BEGIN BUTTON
, it will be caused.

By test I found this truely acts as supposed:thread exited the *run()*
func. But when I press the BEGIN BUTTON again, an Error was caused:
thread already started.
It's said that if the *run()* func is finished, the thread will become
dead. So how to interprete this?
Any solution?

Thanks.




More information about the Python-list mailing list