Where'd the call to Console.ReadLine go?  That's the reason you don't see 
Finished printing...  On 1.1 and 2.0B2 from the console or in a file w/ a call 
to Console.ReadLine or raw_input I end up seeing finished getting printed.  
We're simply exiting before the asynchronous operation but that doesn't fully 
answer the question - started is still never printing!  Stranger yet you can 
call mi() directly showing the delegate is clearly created correctly and 
working.  Anyway, I'll have to look at it closer - it might require windbg to 
figure out what's going wrong here.

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matthew Barnard
Sent: Tuesday, May 13, 2008 5:39 PM
To: IronPython List
Subject: [IronPython] System.Windows.Forms.MethodInvoker

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
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to