"xbmuncher" <xboxmunc...@gmail.com> wrote

def longLoop():
   x = 0
   for n in range(100000):
       time.sleep(5)
       x = x + n

It will run in the console for a long time. How can I send a command and
cause it to stop and pursue hello() function?

You can use Ctrl-C and put the loop insiode a try/except clause
to catch the Interrupt. Or....

in the console.. and really I'd like to create a GUI that will run the
longLoop() function after I push a button and then press another button to
stop the longLoop() function and run the hello() function.

There are two normal ways to do this in a GUI:
1) break the loop into small chunks and run them in response
to timer events. The function then calls the timer at the end of
each chunk until it completes its task. This frees up the GUI to
detect user events between timers.

2) Use threads. This has the advantage of working in a GUI
or a commandline. But is a little bit more complex and you
need to make sure your loop isn't messing with (or being
messed with) the rest of the priogram via shared data/resources.

in the wxPython, which is gui of choice for python. I'll settle for a way to do it via console as well. The overall idea is, is that I want to cut short
the process of a piece of code in order to start another piece of code.

You can put a terminating flag in the timer code or you can
send a message to stop a thread, either way will work.

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to