How to interrupt Python from a .NET program?

I have written a Python script editor in C#. It runs a script using PythonEngine.RunSimpleString(). I need to be able to interrupt the script execution fromC#, but I haven't been able to figure out how to do it without crashing the process. If I try to finalize the PythonEngine, or raise a keyboard interrupt, either in the GUI thread, or in a Python callback thread (a C# delegate), I get: Fatal Python error: PyThreadState_Get: no current thread Thanks for any light anyone can shed on this.

I have written a Python script editor in C#. It runs a script using PythonEngine.RunSimpleString().
I need to be able to interrupt the script execution fromC#, but I haven't been able to figure out how to do it without crashing the process.
If I try to finalize the PythonEngine, or raise a keyboard interrupt, either in the GUI thread, or in a Python callback thread (a C# delegate), I get:
Fatal Python error: PyThreadState_Get: no current thread
Thanks for any light anyone can shed on this.
Hmm - this probably indicates something I need to fix. In the meantime, you can try calling PythonEngine.EnsureThread() from the thread you are using before trying to interrupt - that should at least make sure that Python knows about the thread. It may still fail, but at least it should fail with a different error ;^) Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com
participants (2)
-
Brian Lloyd
-
Michael.Gogins@sungard.com