简体   繁体   中英

Run delegate method with BeginInvoke

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) )?

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);});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM