[IronPython] Making asynchronous calls in IronPython
Michael Foord
fuzzyman at voidspace.org.uk
Mon May 4 23:47:49 CEST 2009
Schmottlach, Glenn wrote:
> I've looked at the C# examples in MSDN but they don't appear to lend
> themselves (at least with my limited experience in .NET) to an easy
> implementation in IronPython due to the dynamic nature of the type
> system in Python.
>
> The example I looked at:
>
> http://msdn.microsoft.com/en-us/library/h80ttd5f.aspx
>
>
> declares a delegate type which seems difficult to do in IronPython, e.g.
>
> C#
>
> public delegate bool AsyncFactorCaller (
> int number,
> ref int primefactor1,
> ref int primefactor2);
>
> So what's the equivalent in IronPython?
>
> Also, (out) parameters are passed by reference to BeginInvoke and
> EndInvoke and it's not clear to me how to handle this in IronPython.
>
> So, I suspect I'm missing something in order to get things working. What
> I really need to see is a concrete IronPython example and I think things
> would gel at that point. Could you offer such an example . . . Google
> hasn't been helpful in this respect.
>
out parameters are handled by IronPython as extra return values - you
wrap your callback function in CallTarget0 and an AsyncCallback.
I hope this helps.
Michael
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com
> [mailto:users-bounces at lists.ironpython.com] On Behalf Of Michael Foord
> Sent: Monday, May 04, 2009 4:33 PM
> To: Discussion of IronPython
> Subject: Re: [IronPython] Making asynchronous calls in IronPython
>
> Schmottlach, Glenn wrote:
>
>> Although I'm very comfortable with CPython, I'm new to IronPython and
>> the .NET framework. What I am looking for is sample code that shows
>> how to issue an asynchronous call from IronPython using the
>> BeginInvoke/EndInvoke mechanism of .NET.
>>
>>
>
> I can't remember the usage off the top of my head - but usage from
> IronPython is identical to usage from C#, so an MSDN example ought to
> give you what you need.
>
> All the best,
>
> Michael
>
>> Currently, I'm playing around with GTK# and a D-Bus .NET
>> implementation (NDesk-DBus) that only provides synchronous proxy
>> methods for D-Bus services. I believe (please correct me if I'm wrong)
>>
>
>
>> that I should be able to use the BeginInvoke/EndInvoke mechanism to
>> issue these blocking proxy requests asynchronously and be notified
>> (via a callback) when the method has completed.
>>
>> My blocking proxy calls look something like this:
>>
>> ret = /self/._proxy.TunerGetCurrentWaveBand(0)
>>
>> where 'ret' returns the current waveband (AM, FM, etc..) and are
>> called from a button "clicked" delegate. I would rather not block the
>> GTK# dispatch loop while waiting for the reply from the service. Can
>> someone offer me any advice or provide a reference to sample code that
>>
>
>
>> illustrates the basic concept from IronPython?
>>
>>
>>
> ------------------------------------------------------------------------
>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>
>
>
--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog
More information about the Ironpython-users
mailing list