Run delegate method with BeginInvoke

.net, c#, delegates, winforms

Solution

You should be able to use:

form.BeginInvoke((Action<int>)DoWork, param);

As a side note, `MethodInvoker` has the advantage of special handling - it can invoke that one with typed-invoke, rather than reflection-invoke - and perhaps more importantly offers checking of the args ahead of time; personally I would just use:

form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});

Problem

In my class I have a static method ``` public static void DoWork(int param) ... ``` I want to run that method like: ``` Form.BeginInvoke(DoWork, param); ``` Is this operation possible? I tried with the MethodInvoker class ... but I don't want to define the method body inline. Is there any generic delegate? Or do you know any other way of calling this without defining a delegate object (`private delegate void DoWorkDelegate(int param)`)?

Original source