[IronPython] System.Windows.Forms.MethodInvoker

Matthew Barnard m.stephen.barnard at gmail.com
Wed May 14 02:38:40 CEST 2008


The C# sample runs as expected, displaying 'Started. Finished.', but the ipy
does nothing.
Can someone enlighten me as to the difference? I assume it is something to
do with the way functions are represented in ipy vs. what methodinvoker is
looking for,
but I'm honestly lost.

C#:

class foo
    {
        public void start()
        {
            Console.WriteLine("Started.");
            Thread.Sleep(2000);
        }

        public void finish(IAsyncResult r)
        {
            Console.WriteLine("Finished.");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            foo bar = new foo();

            MethodInvoker mi = new MethodInvoker(bar.start);
            mi.BeginInvoke(new AsyncCallback(bar.finish), null);

            Console.ReadLine();
        }
    }


IPY:

import clr

clr.AddReferenceByPartialName('System.Windows.Forms')

from System import AsyncCallback
from System.Threading import Thread
from System.Windows.Forms import MethodInvoker

class foo:
    def start(self):
        print 'Started.'
        Thread.Sleep(2000)

    def finish(self, r):
        print 'Finished.'

bar = foo()
mi = MethodInvoker(bar.start)
mi.BeginInvoke(AsyncCallback(bar.finish), None)


___________________________
Matthew Barnard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080513/3df51fd3/attachment.html>


More information about the Ironpython-users mailing list