En Mon, 08 Jun 2009 22:15:22 -0300, BigHand <hewei...@gmail.com> escribió:

   I have an embedded python application. which is  a MFC app with
Python interpreter embedded.

   In the App, I have a separate thread to execute a Python script
(using the PyRun_File), but if the user want to stop the executing
script, how should I do?

A possible way is terminate the thread of executing the scripts by
TerminateThread(). but TerminateThread() is unsafe and not
recommended.

guys, could you guide me on this?

You could use PyThreadState_SetAsyncExc (to "inject" an exception), or perhaps PyErr_SetInterrupt (to emulate ^C, which in turn generates a KeyboardInterrupt). This should work fine for well-behaved scripts, but if it ignores all exceptions like this:
        try: ...
        except: pass
you'll have to look at ceval.c how to break out of the running loop.

(this is yet another argument against indiscriminately using a bare except clause...)

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to