[IronPython] function thread target delegates
mailinglist.account at gmail.com
Sat Aug 6 13:01:41 PDT 2005
Thanks for your insight and reply.
I found that it works if instead of using generics, I just wrapped the
function as an ParameterizedThreadStart instance.. Take a look:
IronPython 0.9.2036 on .NET 2.0.50215.44
Copyright (c) Microsoft Corporation. All rights reserved.
>>> from System import Threading
>>> def echo(arg):
... print arg
>>> t = Threading.Thread(Threading.ParameterizedThreadStart(echo))
On 8/6/05, Keith J. Farmer <kfarmer at thuban.org> wrote:
> Okay, had a brief check. You should take a look at delegates. They're
> not the same as passing around Python methods. In particular, they're
> The type of a delegate is its signature. In particular:
> ThreadStart -> void foo()
> ParameterizedThreadStart -> void foo(object)
> The Thread constructor you're picking up is Thread(ThreadStart foo),
> where you want Thread(ParameterizedThreadStart foo).
> What you want, somehow, is to get the overload to pick the
> ParameterizedThreadStart version.
> However, the following seems to encounter a conflict between generics
> and method resolution:
> >>> t = Threading.Thread[Threading.ParameterizedThreadStart](echo)
> System.InvalidOperationException: System.Threading.Thread is not a
> GenericTypeDefinition. MakeGenericType may only be called on a type for
> which Type.IsGenericTypeDefinition is true.
> at System.RuntimeType.MakeGenericType(Type instantiation, Boolean
> at input_11.Run(Frame frame)
> Keith J. Farmer
> kfarmer at thuban.org
> users-ironpython.com mailing list
> users-ironpython.com at lists.ironpython.com
More information about the users-ironpython.com