[IronPython] Stop script execution/unload script

Curt Hagenlocher curt at hagenlocher.org
Mon Jan 19 15:22:11 CET 2009


Your intuition that you're running a kind of script that can be stopped is
leading you astray. :)

When you program in IronPython, it's very much like programming in C# -- the
objects you create will stay alive until they are garbage collected or the
program ends.  So to unhook the delegate from the event, you need to do the
same thing from IronPython that you would have done from C#:

Button1.Click -= hello.

I believe that Runtime.Shutdown() will call any "atexit" methods you defined
from Python, so you can use this to perform cleanup.

On Mon, Jan 19, 2009 at 5:55 AM, TommyN <tno at vizrt.com> wrote:

>
> Hi,
>
> I've been testing using IronPython as an embedded script language in a
> small
> C# application. I have added some code to a winform buttons Click event
> with
> code like this:
>
> def hello(s, e):
>  MessageBox.Show('Clicked ' + s.Name)
> Button1.Click += hello;
>
>
> This works fine, but the problem is that if I modify the script code at
> run-time and call:
>
> source.Engine.Runtime.Shutdown();
> source = engine.CreateScriptSourceFromString(....);
> ..
> source.Execute(..)
>
> I suddenly have 2 scripts running at the same time, and the messagebox is
> displayed twice.
> How should I go about properly stopping/unloading the first instance of the
> script so only the latest script will be executed?
>
> Any pointers would be greatly appreciated!
> -Tommy
>
> --
> View this message in context:
> http://www.nabble.com/Stop-script-execution-unload-script-tp21542133p21542133.html
> Sent from the IronPython mailing list archive at Nabble.com.
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20090119/954c5903/attachment.html>


More information about the Ironpython-users mailing list